目前我有一个多模块maven项目,其中版本和插件在父级中定义并在模块中使用。
parent.pom中的示例依赖:
<properties>
<junit.version>4.12</junit.version>
</properties>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
并在模块中使用:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
这很好用,项目构建没有任何问题。现在,我想将一些版本和依赖项提取到独立 enterprise.pom中,以全局定义它们并在我的不同项目中使用它们。所以我创建了一个企业项目(类型POM):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myurl</groupId>
<artifactId>META-POM</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<junit.version>4.12</junit.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencyManagement>
</project>
然后我运行mvn clean install
将它放入我的本地存储库,该工作正常 - 我可以在那里看到它
接下来,我更改了我的多模块项目,使用META-POM作为依赖项(了解META-POM中定义的版本)并删除了junit-property以及依赖项
<dependency>
<groupId>com.myurl</groupId>
<artifactId>META-POM</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
当我现在尝试打包我的多模块项目时,它会失败,因为依赖项没有在META-POM中定义的属性。 即使我将模块中的依赖项更改为
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
它仍然给我同样的错误for junit:jar must be a valid version but is '${junit.version}'.
如何从企业-POM派生版本属性?我想在一个地方定义它们,所以我确保我在任何地方使用相同的版本。
P.S。我希望在没有在enterprise-POM和所有多模块项目之间定义parent/module
的情况下拥有一个独立的enterprise-POm
答案 0 :(得分:1)
您需要在依赖项中添加if (ActivityCompat.checkSelfPermission((Activity)mContext, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity)mContext, new String[]{
android.Manifest.permission.ACCESS_FINE_LOCATION
}, 10);
}
到META-POM。之后,您应该能够使用不带版本标记的junit。
我建议使用小写的artifactId。如果您有多个使用相同版本的依赖项,则META-POM中的属性才有意义。