Я работаю над проектом, который использует gradle и плагин jfrog для публикации в artifactory. Важные фрагменты кода являются следующие:Как изменить область выполнения для масштабирования, чтобы скомпилировать область?
plugins {
id "java"
id "idea"
id "groovy"
id "pmd"
id "findbugs"
id "maven-publish"
id "com.jfrog.artifactory" version "3.1.1"
}
dependencies {
compile 'com.google.guava:guava:18.0'
compile 'com.mashape.unirest:unirest-java:1.4.5'
compile 'log4j:log4j:1.2.14'
}
artifactory {
contextUrl = "https://SOME_SERVER/artifactory"
publish {
repository {
repoKey = 'libs-snapshot-local'
username = artifactory_username
password = artifactory_password
maven = true
}
defaults {
publications ('mavenJava')
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
Когда я делаю Gradle artifactoryPublish все, кажется, работает хорошо. Публикуются артефакты и создается файл pom.
сожалению зависимостей в файле есть весь п выполнения области видимости:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.whatsoever</groupId>
<artifactId>some-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
Вместо этого выполнение объема, они должны иметь объем компиляции. Что я делаю не так?
Это сработало! Тем не менее я решил пойти с традиционным подходом, пока этот плагин больше не инкубирует. – u6f6o
FYI: Если ваш проект Gradle имеет несколько модулей, один из них зависит от другого. Вам может потребоваться удалить строку «{dep -> dep.name == it.artifactId.text() }" Поскольку это фактически изменит тег artifactId в сгенерированном pom.xml –