java - Gradle 依赖项解决配置文件问题

标签 java maven gradle maven-2 maven-plugin

我已经在 build.xml 中构建了一个 Maven 项目 A,其中包含使用另一个 pom 导入的所有测试依赖项。 当我尝试将 Maven 项目 A 包含到 gradle 项目 B 时 它给出了错误。

我尝试使用 [--info] 首先它会尝试正确的存储库 url 并更新 jar [缓存资源是最新的]。但最后它尝试了其他方法并抛出错误。

如何从 gradle 构建文件传递配置文件名称?

感谢您的帮助。

项目 A -> Maven 构建 - pom.xml

<groupId>com.spring.test</groupId>
<artifactId>Rest</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>Project</name>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <JUnitBOM.version.number>1.0.0</JUnitBOM.version.number>        
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencyManagement>
    <dependencies>
        <!-- Components -->
        <dependency>
            <groupId>com.test</groupId>
            <artifactId>JUnitBOM</artifactId>
            <version>${JUnitBOM.version.number}-${project.qualifier}
           </version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

    <profile>
        <id>AUAT</id>
        <properties>
            <env>uat</env>              
            <project.qualifier>SNAPSHOT</project.qualifier>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>

项目 B -> gradle 构建 - build.gradle

apply plugin: 'java'
apply plugin: 'maven'

group = "com.spring.integration" 
status = 'integration' 
version = '1.0.0' 
sourceCompatibility = 1.7

repositories {   
  maven { url "http://repo1" }  
  maven { url "http://maven.springframework.org/release" }   
  maven { url "http://maven.restlet.org" } }

dependencies {   
  compile group:'com.spring.test', name:'Rest', version:'1.0.0-SNAPSHOT', classifier: 'AUAT'    
  compile group:'org.restlet.jee', name:'org.restlet', version:'2.2'   
  compile group:'org.restlet.jee', name:'org.restlet.ext.servlet',version:'1.1'   
  compile group:'org.springframework', name:'spring-web',    version:'3.2.1.RELEASE'   
  compile group:'org.slf4j', name:'slf4j-api', version:'1.7.2'   
  compile group:'ch.qos.logback', name:'logback-core', version:'1.0.9'   
  testCompile group:'junit', name:'junit', version:'4.11' 

}

错误信息

Could not resolve all dependencies for configuration ':compile'.
> Could not resolve com.spring.test:Rest:1.0.0-SNAPSHOT.
  Required by:
  com.spring.test:0.1.0-SNAPSHOT
> Could not resolve com.test:JUnitBOM:1.0.0-${project.qualifier}.
  > java.lang.IllegalArgumentException (no error message)
  > java.lang.IllegalArgumentException (no error message)
  > java.lang.IllegalArgumentException (no error message)
> Could not HEAD 'http://maven.restlet.org/com/spring/test/Rest/1.0.0-SNAPSHOT/Rest-1.0.0-SNAPSHOT.pom'. Received status code 409 from server: Conflict

最佳答案

您可以使用 Gradle maven 设置插件 https://plugins.gradle.org/plugin/net.linguica.maven-settings 。 使用maven设置插件,您可以传递activeProfiles,自定义maven设置文件。

关于java - Gradle 依赖项解决配置文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45079384/

相关文章:

Maven 项目作为 gradle 项目中的依赖项

java - 在中央找不到 Maven Artifact

scala - 错误:scalac: 'jvm-1.9' is not a valid choice for '-target'

java - Android onClick跳转到当前位置并激活LocationListener

java - Sonar maven 插件在 Java 主文件 AST 扫描期间挂起

java - j2objc 不尊重死代码报告

gradle - Gradle 的 build.gradle 中的 '' 和 ""有什么区别?

java - Map 的 keySet() 和 entrySet() 的性能注意事项

java - 为什么 "int i = 2147483647 + 1;"可以,但是 "byte b = 127 + 1;"不能编译?

java - 加载大文件时如何提高JTextPane的性能