Ich möchte .svn
Ordner ausschließen, wenn ich mein Plugin in unserem benutzerdefinierten Artifactory-Repository veröffentliche. Ich gehe davon aus, dass die Aufnahme von .svn
Ordnern das Problem ist, das auf der unten angegebenen Fehlermeldung basiert.Ausschließen von Dateien und Ordnern während der Plugin-Veröffentlichung
ich die Veröffentlichung des folgenden Befehl:
gradlew artifactoryPublish --stacktrace
Dies ist der Verlag Block in build.gradle
:
artifactory {
contextUrl = artifactory_context
publish {
repository {
repoKey = 'plugins-release-local'
username = artifactory_user
password = artifactory_password
maven = true
}
defaults {
publications ('mavenJava')
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
Dies ist der Stack-Trace ich, wenn ich zu veröffentlichen versuchen, beachten Sie die Versuchskopie von .svn/entries
zu assets/entries
.
...
:copyAssets FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':copyAssets'.
> Could not copy file '/u01/var/build/pluginXYZ/grails-app/assets/.svn/entries' to '/u01/var/build/pluginXYZ/build/resources/main/META-INF/assets/entries'.
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':copyAssets'.
...
Caused by: org.gradle.api.GradleException: Could not copy file '/u01/var/build/pluginXYZ/grails-app/assets/.svn/entries' to '/u01/var/build/pluginXYZ/build/resources/main/META-INF/assets/entries'.
...
Caused by: java.io.FileNotFoundException: /u01/var/build/pluginXYZ/build/resources/main/META-INF/assets/entries (Permission denied)
... 80 more
Die Erlaubnis auf entries
(beide Bäume) sind -r--r--r--
.
Wenn ich diese Ordner ausschließe, sollte ich dieses Berechtigungsproblem loswerden. Der erste Checkout wird immer veröffentlicht, aber nachfolgende Publishs (zB nach einem Update) schlagen mit diesem Fehler fehl.
Update # 2
Hier sind die drei Kombination ich ohne Erfolg versucht:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
//first attempt
//exclude("**/.svn/**")
//second attempt
//exclude{ details -> details.file.name.contains(".svn") }
//third attempt
//exclude "**/.svn/**"
}
}
}
Der Fehlerausgang bei der Veröffentlichung, alle drei Versuche verwendet wird, ist die folgende:
Caused by: org.gradle.api.internal.MissingMethodException: Could not find method exclude() for arguments [build_3nsvrq[email protected]10e9a5fe] on org.gradlpubli[email protected]ca7e37f.
Aktualisierung # 3
Ich habe folgenden Link gefunden taking about excluding files.
Ich stellte dann meine gradle.build
dazu:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java {
exclude "**/.svn/**"
}
}
}
}
gleichen Fehler.
Update # 4
Weitere Versuche ... gleichen Ergebnisse
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourceJar{
exclude '**/.svn/**'
}
}
}
}
oder
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact exclude '**/.svn/**'
}
}
}
Ich habe versucht 3 verschiedene Konfiguration (siehe Update 2) ohne Erfolg. Ich bin mir nicht sicher, ob ich umgesetzt habe, was Sie vorhatten. – TekiusFanatikus
Es scheint, dass Ihre components.java falsch ist. Versuchen Sie, das Artefakt explizit wie eine Artefaktdatei ("path-to-jar/jar.jar") anzugeben. – user3450486
Nicht zufällig könnte man etwas für mich programmieren? Bisher haben alle Versuche, Artefakte mit exclude anzufügen, den gleichen Fehler. – TekiusFanatikus