如何在编译阶段之前运行等效的mvn install:install-file
。我们在lib/foo-1.0.0.jar
下有一个文件,该文件不存在于Maven仓库中。所以我们使用mvn install:install-file手动安装它,并在编译阶段将其作为依赖项。但是,如果文件未安装在本地存储库中,则会因编译错误而失败。如何指示maven在编译之前自动安装
答案 0 :(得分:2)
使用系统依赖范围
<dependency>
<groupId>com.company.groupId</groupId>
<artifactId>foo</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/foo-1.0.0.jar</systemPath>
</dependency>
${basedir}
- 是您pom.xml
的目录
的修改
您也可以使用build-helper-maven-plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${basedir}/lib/foo-1.0.0.jar</file>
<type>jar</type>
<classifier>optional</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
答案 1 :(得分:1)
安装公司范围的Maven代理,例如Nexus,并将工件放在那里。每个开发人员都需要更改其settings.xml
以指向该代理。将jar检查到版本控制通常是个坏主意,特别是如果你想转移到分布式SCM。