如何在编译前运行等效的mvn-install:install文件



如何在编译阶段之前运行等效的mvn install:install-file。我们在lib/foo-1.0.0.jar下有一个文件,它不存在于Maven回购中。因此,我们使用mvn-install:install文件手动安装它,并在编译阶段将其作为依赖项。但是,如果该文件未安装在本地存储库中,则会因编译错误而失败。我如何指示maven在编译之前自动安装它

使用系统依赖范围

<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>

安装一个公司范围的Maven代理,如Nexus,并将工件放在那里。每个开发人员都需要更改他们的settings.xml以指向该代理。将jar签入版本控制通常是个坏主意,尤其是当您想转移到分布式SCM时。

最新更新