0

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

4

2 回答 2

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>
于 2012-08-22T19:01:27.613 回答
1

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

于 2012-08-23T08:09:18.597 回答