首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯度将工件部署到本地目录中的maven存储库中。

梯度将工件部署到本地目录中的maven存储库中。
EN

Stack Overflow用户
提问于 2014-06-03 08:38:23
回答 4查看 12K关注 0票数 7

什么是Gradle的等同于Maven的:

代码语言:javascript
复制
<distributionManagement>
    <repository>
        <id>internal.repo</id>
        <name>Temporary Staging Repository</name>
        <url>file://${project.build.directory}/mvn-repo</url>
    </repository>
</distributionManagement>

<build>
 <plugins>
    <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
               <altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
        </configuration>
    </plugin>
 </plugins>
</build>

我试过:

代码语言:javascript
复制
apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file:///tmp/mvn-repo")
        }
    }
}

但它会抛出:

代码语言:javascript
复制
[ant:null] Error reading settings file '/private/var/folders/KH/KH+cubLjEESWzOTqVrx-bU+++TI/-Tmp-/gradle_empty_settings7564764539012703872.xml' - ignoring. Error was: /private/var/folders/KH/KH+cubLjEESWzOTqVrx-bU+++TI/-Tmp-/gradle_empty_settings7564764539012703872.xml (No such file or directory)

我正在从事的项目是git://github.com/SpringSource/spring-data-rest.git分支1.0.0.RELEASE项目的build.gradle

完全分级输出:

代码语言:javascript
复制
gradle uploadArchives
The groovy configuration has been deprecated and is scheduled to be removed in Gradle 2.0. Typically, usages of 'groovy' can simply be replaced with 'compile'. In some cases, it may be necessary to additionally configure the 'groovyClasspath' property of GroovyCompile and Groovydoc tasks.
:uploadArchives
[ant:null] Error reading settings file '/private/var/folders/KH/KH+cubLjEESWzOTqVrx-bU+++TI/-Tmp-/gradle_empty_settings396071803108301794.xml' - ignoring. Error was: /private/var/folders/KH/KH+cubLjEESWzOTqVrx-bU+++TI/-Tmp-/gradle_empty_settings396071803108301794.xml (No such file or directory)
:spring-data-rest-core:compileJava UP-TO-DATE
:spring-data-rest-core:compileGroovy UP-TO-DATE
:spring-data-rest-core:processResources UP-TO-DATE
:spring-data-rest-core:classes UP-TO-DATE
:spring-data-rest-core:jar UP-TO-DATE
:spring-data-rest-core:javadoc UP-TO-DATE
:spring-data-rest-core:javadocJar UP-TO-DATE
:spring-data-rest-core:sourcesJar UP-TO-DATE
:spring-data-rest-core:uploadArchives
:spring-data-rest-repository:compileJava UP-TO-DATE
:spring-data-rest-repository:compileGroovy UP-TO-DATE
:spring-data-rest-repository:processResources UP-TO-DATE
:spring-data-rest-repository:classes UP-TO-DATE
:spring-data-rest-repository:jar UP-TO-DATE
:spring-data-rest-repository:javadoc UP-TO-DATE
:spring-data-rest-repository:javadocJar UP-TO-DATE
:spring-data-rest-repository:sourcesJar UP-TO-DATE
:spring-data-rest-repository:uploadArchives
:spring-data-rest-webmvc:compileJava UP-TO-DATE
:spring-data-rest-webmvc:compileGroovy UP-TO-DATE
:spring-data-rest-webmvc:processResources UP-TO-DATE
:spring-data-rest-webmvc:classes UP-TO-DATE
:spring-data-rest-webmvc:jar UP-TO-DATE
:spring-data-rest-webmvc:javadoc UP-TO-DATE
:spring-data-rest-webmvc:javadocJar UP-TO-DATE
:spring-data-rest-webmvc:sourcesJar UP-TO-DATE
:spring-data-rest-webmvc:uploadArchives

我用1.12级。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-03 09:31:58

找到了问题的原因。我正在构建的项目是一个多模块项目,这里我找到了以下信息:

52.6.4.1.每个项目有多个工件 Maven只能处理每个项目的一个工件。这反映在Maven POM的结构中。我们认为,在许多情况下,每个项目有不止一个工件是有意义的。在这种情况下,您需要生成多个POMs。在这种情况下,您必须显式声明要发布到Maven存储库的每个工件。

因此,我已经将uploadArchives从根级build.gradle移到了项目级build.gradle,这解决了这个问题。

我认为有关maven的setting.xml的错误消息非常具有误导性,应该由Gradle团队修复。

票数 5
EN

Stack Overflow用户

发布于 2014-06-03 09:23:35

如果您试图在本地部署(例如,部署到~/.m2),则需要:

代码语言:javascript
复制
apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            mavenLocal()
        }
    }
}

除了默认情况之外,我没有尝试使用任何存储库,但我相信您可以在~/.m2/setings.xml中设置存储库位置:

代码语言:javascript
复制
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>/tmp/mvn_repo</localRepository>
  ...
</settings>

也可以在gradle构建文件中设置url:

代码语言:javascript
复制
maven {
     url uri('/tmp/mvn_repo')
} 
票数 5
EN

Stack Overflow用户

发布于 2016-09-20 08:53:53

如果您试图在本地部署(例如到~/.m2/存储库),那么: 1.mavenLocal()方法在gradle中检查localRepository中的settings.xml,如果它不存在的话

代码语言:javascript
复制
<localRepository>${user.home}/.m2/repository</localRepository>

2.在build.gradle文件中添加以下内容

代码语言:javascript
复制
apply plugin: 'maven'

uploadArchives {
      repositories {
          mavenDeployer {
                         repository(url: mavenLocal().url)
                        } 
                   }
            }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24010626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档