我有一个像这样的Maven项目结构:
mallet import-dir
我可以按照data1,data2,ejb-jsf-converters,web和last ear的顺序编译所有内容。之后我可以部署web1-ear和web2-ear,一切正常。但是必须按特定顺序编译所有内容很烦人。我希望能够编译main。
但我不能。
问题是我在data1中有很多实体。当然,这些实体有很多元模型类。为了生成它们,我在data1的pom.xml中有这两个片段:
main (POM project)
|-ejb (POM project)
| |-data1 (EJB module)
| |-data2 (EJB module)
| |-ejb-jsf-converters (Java application)
|-web (POM project)
| |-... (A bunch of Web applications)
|-ear (POM project)
|-web1-ear (Java EE7 EAR project)
|-web2-ear (Java EE7 EAR project)
当我编译main而不是data1时,无法找到所有突然的persistence.xml,也没有生成或找到元模型类。我可以改变
...
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.4.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.5</version>
<scope>provided</scope>
</dependency>
...
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<compilerArguments>-Aeclipselink.persistencexml=src/main/resources/META-INF/persistence.xml</compilerArguments>
<processors>
<processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
</plugin>
...
到
<compilerArguments>-Aeclipselink.persistencexml=src/main/resources/META-INF/persistence.xml</compilerArguments>
然后我可以编译主项目。但是当我这样做时,我不再能编译data1。然后是无法找到persistence.xml并生成元模型类的data1。能够编译main是很好的,但每次我只想编译data1时被迫编译main是一件痛苦的事。编译main比编译data1长10-15倍。
我知道我可以通过指定绝对路径而不是相对路径来使其工作,但许多不同的机器需要编译它。绝对路径在所有这些路径上都不一样。
我考虑过使用环境变量,但我不确定它在所有情况下都能很好地工作。例如,当项目由Jenkins奴隶编译时。
如何使这项工作成功,所以我可以按照我认为合适的方式编译main和data1?
答案 0 :(得分:1)
我得到了它的工作。我将依赖项更改为
.row{
width: 220px;
height: 50px;
border: 1px solid black;
display: -webkit-flex;
display: flex;
float:right;
并删除
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.5.2</version>
<scope>provided</scope>
</dependency>
完全。它在编译过程中抱怨很多关于缺少元模型类的问题,但它确实有效,所以很明显无论如何都会生成类。