将systemPath指定为pom.xml之外的依赖项

时间:2016-12-07 12:51:29

标签: java eclipse maven

问题:我的软件使用每个开发人员(和用户)安装在不同位置的库。

以下内容适用于pom.xml

<project ...>
    ...
    <dependencies>
        <dependency>
            <groupId>myGroup</groupId>
            <artifactId>myName</artifactId>
            <version>1.2.3</version>
            <scope>system</scope>
            <systemPath>C:\...\....jar</systemPath>
        </dependency>
    </dependencies>
</project>

但是当我将其检查为源代码控制时,每个需要更改它的开发人员都必须更改pom.xml,因此必须在之后的每次提交时忽略它,或者如果他必须更改其他内容则部分提交在pom.xml中,例如添加另一个依赖项。

  1. 使用属性无效,只是将问题移到pom.xml内的其他位置。

  2. 使用属性并从外部文件(properties-maven-plugin)读取它似乎不起作用,因为插件在的依赖性检查之后被称为。 Eclipse:Dynamically adding a Maven dependency from a property

  3. 使用环境变量${env.MY_VARIABLE}似乎也不起作用:[ERROR] 'dependencies.dependency.systemPath' for myGroup:myName:jar must specify an absolute path but is ${env.MY_VARIABLE} @line 123, column 45

  4. 关于如何解决的任何想法?

2 个答案:

答案 0 :(得分:0)

我会为我的罐子使用repoistory。像nexus或ar​​tifactory之类的东西。

答案 1 :(得分:0)

此选项适用于我:

3. Using environment variables ${env.MY_VARIABLE} seems not to work either: [ERROR] 'dependencies.dependency.systemPath' for myGroup:myName:jar must specify an absolute path but is ${env.MY_VARIABLE} @line 123, column 45

您必须将jar名称包含在路径中,例如${env.MY_VARIABLE/my_jar.jar}。 还要确保您的环境中存在MY_VARIABLE。 最后执行mvn cleanmvn compile命令