2017-12-06 1 views
0

persistence.xml의 자리 표시자를 채우는 변수를 gradle로 정의 할 수 있습니까?persistence.xml에서 데이터를 채우기 위해 gradle의 변수를 정의하십시오.

gradle.properties :

dev.classes= <class>my.package.class</class>.....<class>my.package.class</class> 

의 persistence.xml

<persistence> 
    <persistence-unit name "a"> 
    <!--define a variable that will be overwritten by build.gradle--> 
     ... 
    </persistence-unit> 
</persistence> 

build.gradle

,536,
task replaceTokens { 
    from(//persistence.xml path) { 
    filter(ReplaceTokens, tokens: [//variable in xml, //value in gradle.properties]) 
    } 
} 

내 persistence.xml에 더 많은 persistence-units이 있기 때문에 필요합니다. 모두 동일한 클래스가 필요합니다. 현재 클래스는 모든 영속성 유닛에 "하드 코드 된"상태입니다. 내가 한 번만 정의 할 수 있다면 더 좋을 것이다.

답변

0

, 나는/persistence.xml을

<persistence> 
    <persistence-unit name="a"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:/A</jta-data-source> 
@[email protected] 
    </persistence-unit> 

    <persistence-unit name="b"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:/B</jta-data-source> 
@[email protected] 
    </persistence-unit> 
</persistence> 

gradle.properties src/template/resources

SRC/템플릿/자원에서

persistence.classes=\ 
     <class>com.example.Foo</class>\ 
     <class>com.example.Bar</class>\ 
     ... 

빌드를 XML 템플릿을 넣어 것입니다. 그래 브레

apply plugin: 'java' 
processResources { 
    from 'src/template/resources', { 
     filter(ReplaceTokens, tokens: ['persistence.classes': property('persistence.classes')]) 
    } 
} 
0

물론 //value in gradle.propertiesproject.'dev.classes'으로 대체하거나 속성에 점이 없으면 간단히 dev_classes으로 변경하십시오. 그것은 나를라면

관련 문제