2016-12-27 14 views
1

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に基づいているようです。

答えて

1

Javaコードをコンパイルする必要がない場合は、javaの代わりにbaseプラグインを使用してください。また、あなたがfrom components.javaを削除する必要があります。は「資源化に書き込めませんでした」

apply plugin: 'base' 
apply plugin: 'maven-publish' 

publishing { 
    publications { 
    mavenJava(MavenPublication) { 
     artifact stompProgressLibraryFile 
    } 
    } 
} 

あなたの次のエラーはGradleの問題は、リポジトリへの書き込みアクセスをチェックしない可能性が高いです。リモートリポジトリに公開する前に、ローカルリポジトリでそれを公開しよう:

は、プラグインを適用します。

$ ./gradlew install 
+0

Thxを:

apply plugin: "maven" 

は、タスクinstallを実行します!すでにcomponents.javaから削除されています。次にベースプラグインを試してみましょう。奇妙なことに、そのようなことはすべて、Gradleオンラインガイドで十分に文書化されているわけではありません... –

関連する問題