OpenEdgeプロジェクトを構築するためにGradleをAntと組み合わせて使用しようとしています。 OpenEdgeは何世紀前からの4GL言語です。 ;-)Nexusにgradleを持つjar以外のものを公開する
とにかく、いくつかのJarの依存関係をダウンロードして管理しましたが、今はPLファイル(Progress Library)をNexusリポジトリに公開する方法が残っています。ことは、Mavenのように、GradleもJavaプロジェクト用に作られているようです。
これは(私もrootProject.name = 'ストンプ' がsettings.gradleファイルを持っている)私のスクリプトです:Gradleの実行
apply plugin:'java'
apply plugin: 'maven-publish'
group 'be.mips'
version = '1.4.0-SNAPSHOT'
repositories {
/*
Gradle uses the same logic as Maven to identify the location of your local
Maven cache. If a local repository location is defined in a settings.xml,
this location will be used. The settings.xml in USER_HOME/.m2 takes precedence
over the settings.xml in M2_HOME/conf. If no settings.xml is available, Gradle
uses the default location USER_HOME/.m2/repository.
*/
mavenLocal()
maven {
credentials {
username '****'
password '****'
}
url "http://srv-ci-nexus:8082/nexus/content/repositories/MadeApplReleases/"
url "http://srv-ci-nexus:8082/nexus/content/repositories/MadeApplSnapshots/"
}
mavenCentral()
}
def stompProgressLibraryFile = file('dist/lib/STOMP.PL')
artifacts {
archives stompProgressLibraryFile
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact stompProgressLibraryFile
}
}
repositories {
maven {
// default credentials for a nexus repository manager
credentials {
username '****'
password '****'
}
// url to the releases maven repository
url "http://srv-ci-nexus:8082/nexus/repositories/snapshots"
}
}
}
configurations {
antconf
}
dependencies {
antconf 'be.mips:mips-progress-ant-tasks:1.5.8-SNAPSHOT',
'be.mips:mips-pct:1.0-SNAPSHOT',
'ant-contrib:ant-contrib:1.0b3'
}
/* Loads the jars */
ClassLoader antClassLoader = org.apache.tools.ant.Project.class.classLoader
configurations.antconf.each {
File f -> antClassLoader.addURL(f.toURI().toURL())
}
/* Extend clean task */
clean.doFirst {
delete '_ant_rcode', 'src', 'dist'
println 'deleted directories'
}
/* Create dist/lib directory as prolib does not create directory automatically */
task init(dependsOn: clean) {
doLast{
project.file('dist/lib').mkdirs()
println 'created dist/lib'
}
}
ant.importBuild 'build.xml'
パブリッシュは私に次の出力が得られます。
C: \ OBJECT \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \ SOFTWARE \日付:jar最新情報 :publishMavenJavaPublicationToMavenRep ositoryは、メタデータ be.mipsが見つかりませんでした:ストンプ:リモート (http://srv-ci-nexus:8082/nexus/repositories/snapshots)で1.4.0-SNAPSHOT/mavenの-のmetadata.xml http://srv-ci-nexus:8082/nexus/repositories/snapshots/be/mips/stomp/1.4.0-SNAPSHOT/stomp-1.4.0-20161227.115652-1.pom がアーティファクトbe.mipsを転送することができませんでしたアップロード:ストンプ:POM:1.4.0-20161227.115652を-1 リモート (http://srv-ci-nexus:8082/nexus/repositories/snapshots)へ/から: 'に/ MIPS /ストンプ/ 1.4.0-SNAPSHOT /ストンプ1.4.0-20161227.115652-1.pomを' リソースへもらえない 書き込み アップロード http://srv-ci-nexus:8082/nexus/repositories/snapshots/be/mips/stomp/1.4.0-SNAPSHOT/stomp-1.4.0-20161227.115652-1.jar でしたbe.mips:stomp:jar:1.4.0-20161227.115652-1 from/remote (http://srv-ci-nexus:8082/nexus/repositories/snapshots):できなかった リソース012への書き込み'に/ MIPS /ストンプ/ 1.4.0-SNAPSHOT /ストンプ1.4.0-20161227.115652-1.jar' アップロード http://srv-ci-nexus:8082/nexus/repositories/snapshots/be/mips/stomp/1.4.0-SNAPSHOT/stomp-1.4.0-20161227.115652-1.pl アーティファクトbe.mipsを転送できませんでした:ストンプを:PL:1.4.0-20161227.115652-1 /からのリモート (http://srv-ci-nexus:8082/nexus/repositories/snapshots)へ : 'に/ MIPS /ストンプ/ 1.4.0-SNAPSHOT/stomp-1.4.0-20161227.115652-1.pl' 資源にない 書くことができます:publishMavenJavaPublicationToMavenRepositoryは
をFAILED FAILURE:例外が発生してビルドに失敗しました。
どうしたのか: 'publishMavenJavaPublicationToMavenRepository'タスクの実行に失敗しました。
アーティファクトをデプロイできませんでした「達人」 リポジトリにパブリケーション「mavenJava」を公開できませんでした:アーティファクトbe.mipsを転送できませんでした:ストンプ:POM:/から1.4.0-20161227.115652-1をリモート (http://srv-ci-nexus:8082/nexus/repositories/snapshots ): 'に/ MIPS /ストンプ/ 1.4.0-SNAPSHOT /ストンプ1.4.0-20161227.115652-1.pom' リソースしない 書くことができ
試してくださいに--stacktraceオプションを指定して実行しますスタックトレースを取得します。より多くのログ出力を得るには、--infoまたは--debugオプションを指定して実行します。
BUILDは
合計時間を失敗しました:私は気付か1.089秒
最初の事は、私は必要としないこれらのJavaタスクを持っています。 :compileJava、:processResource、:classes、:jar ...
基本的には、私が望むすべてのことをbuild.xml antファイルがありました。しかし、アリの依存関係管理は非常に貧弱です。だから私はAntと組み合わせてGradleを使うことにしました。私はGradleに私の依存関係管理をさせたい。これまでのところ、依存関係のダウンロードはうまくいくようです(jarの代わりにPLを試してみる必要があります)。しかし、瓶以外のものを出版すると、どうやってそれをしますか?
多くのGradleオンラインドキュメントを読みますが、すべての例はjavaに基づいているようです。
Thxを:
は、タスク
install
を実行します!すでにcomponents.javaから削除されています。次にベースプラグインを試してみましょう。奇妙なことに、そのようなことはすべて、Gradleオンラインガイドで十分に文書化されているわけではありません... –