我有两个Maven(GWT)项目,一个应该依赖另一个。我刚刚添加了依赖项:
<dependency>
<groupId>myGroup</groupId>
<artifactId>MyArtifact</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
正确引用了类,我可以在其他项目中使用它们。但是如果我想触发maven构建,它会抱怨:&#34;无法解决项目的依赖关系:无法找到工件myGroup:MyArtifact:jar:1.0-SNAPSHOT&#34;
该项目没有jar,因为它是一个GWT Web应用程序。它有一场战争&#34;文件。我对这个论点进行了测试,并尝试了像&#34; pom&#34;或&#34;战争&#34;。然后它没有显示错误,但是单元测试确实失败了,因为找不到其他项目的类。
答案 0 :(得分:2)
您需要define in the other project which is a war packaging things like this:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
...
</plugins>
这将使用分类器classes
创建一个工件,可以在其他项目中引用(
<dependency>
<groupId>myGroup</groupId>
<artifactId>myArtifact</artifactId>
<version>myVersion</myVersion>
<classifier>classes</classifier>
</dependency>
答案 1 :(得分:0)
首先为 MyArtifact 项目调用maven install
,该项目将创建一个jar并将其放在您当地的maven存储库中。
现在,您可以将maven build
用于依赖项目。