Man*_*dan 31 gradle build.gradle
我将Maven与M2_HOME定义为:
我有settings.xml文件,位于:
我声明如下:
<localRepository>/Users/manuelj/apache/maven/repository</localRepository>
直到与Maven一起工作一切正常.任何新的依赖都会在那里.
我有一个基于Gradle的项目,在我的build.gradle中有很多东西,存在以下内容:
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'application'
version = '1.0.0'
sourceCompatibility = '1.8'
repositories {
mavenLocal()
mavenCentral()
}
… more
Run Code Online (Sandbox Code Playgroud)
直到这里,一切都很好.代码编译,执行良好.
我的困惑如下.
根据我的理解,Gradle mavenLocal()应该使用与<localRepository>Maven settings.xml文件中定义的路径相同的路径.
现在确认在Maven本地存储库中存在已经下载的一些依赖项.
当我执行例如gradle build时,我确实意识到了这一点
/Users/manuelj/.gradle/caches/modules-2/files-2.1我希望新的依赖项直接转到同一个Maven Local Repository.
因此,需要什么额外配置呢?
tho*_*est 33
~/.m2/repository 解决方法是这样的:
Gradle会查找
mavenLocal()本地Maven存储库所在的信息.如果没有找到任何信息,则假定settings.xml.
这是对问题" mavenLocal() - Gradle如何解析本地maven存储库的目录? " 的答案,在Gradle论坛上给出.
引用的讨论还包含针对您的特定问题的解决方案.为了使用非标准的本地maven存储库,您可以在以下配置中使用以下配置settings.xml:
repositories {
maven {
url '/Users/manuelj/apache/maven/repository'
}
}
Run Code Online (Sandbox Code Playgroud)
nhu*_*uvy 11
使用
mavenLocal()
Run Code Online (Sandbox Code Playgroud)
例如:
buildscript {
ext {
springBootVersion = '2.0.0.M1'
}
repositories {
mavenCentral()
mavenLocal()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
mavenLocal()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
compile('com.oracle:ojdbc6:11.2.0.4')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Gradle 3.5
这驱使我喝酒。
如果我mvn install为一个具有版本的项目进行操作,1.1.1.SNAPSHOT则不会错误地进入我的本地Maven存储库(〜/ m2 / repository / ...)。但是,Gradle使用mavenLocal()将不会尝试在本地Maven存储库中找到它(已使用./gradlew bootRun --debug并检查了日志)。
如果我将版本更改为1.1.1-SNAPSHOT(请注意破折号),则Gradle将尝试并找到存储库。
Maven认为这是供本地使用的有效版本号对我来说没有任何意义,但Gradle完全忽略了它。
| 归档时间: |
|
| 查看次数: |
46543 次 |
| 最近记录: |