Java – gradle shadow plugin failed: error parsing plugin
•
Java
I am migrating the Java Maven project to gradle. Com I added a shade plug-in to maven, but when I tried to copy it in gradle, it currently failed It failed in cleaning, that is, when I issued the following command,
gradle clean
Please find POM below XML file and corresponding build Gradle file
POM xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myproj.integration</groupId>
<artifactId>Generic-Integration</artifactId>
<name>Generic-Integration</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<finalName>myproj-integration-${project.version}</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<createDependencyReducedPom>true</createDependencyReducedPom>
<relocations>
<relocation>
<pattern>jersey.repackaged</pattern>
<shadedPattern>myproj.repackaged</shadedPattern>
</relocation>
<relocation>
<pattern>javassist</pattern>
<shadedPattern>myproj.repackaged.javassist</shadedPattern>
</relocation>
<relocation>
<pattern>org.aopalliance</pattern>
<shadedPattern>myproj.repackaged.org.aopalliance</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.logging</pattern>
<shadedPattern>myproj.repackaged.org.apache.logging</shadedPattern>
</relocation>
<relocation>
<pattern>org.codehaus.jackson</pattern>
<shadedPattern>myproj.repackaged.org.codehaus.jackson</shadedPattern>
</relocation>
<relocation>
<pattern>org.glassfish.hk2</pattern>
<shadedPattern>myproj.repackaged.org.glassfish.hk2</shadedPattern>
</relocation>
<relocation>
<pattern>org.glassfish.jersey</pattern>
<shadedPattern>myproj.repackaged.org.glassfish.jersey</shadedPattern>
</relocation>
<relocation>
<pattern>org.json</pattern>
<shadedPattern>myproj.repackaged.org.json</shadedPattern>
</relocation>
<relocation>
<pattern>org.jvnet</pattern>
<shadedPattern>myproj.repackaged.org.jvnet</shadedPattern>
</relocation>
<relocation>
<pattern>javax.annotation</pattern>
<shadedPattern>myproj.repackaged.javax.annotation</shadedPattern>
</relocation>
<relocation>
<pattern>javax.inject</pattern>
<shadedPattern>myproj.repackaged.javax.inject</shadedPattern>
</relocation>
<relocation>
<pattern>javax.ws</pattern>
<shadedPattern>myproj.repackaged.javax.ws</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.myproj.integration.ServiceExecuter</mainClass>
</transformer>
</transformers>
<artifactSet>
<includes>
<include>com.myproj:Util</include>
<include>org.glassfish.hk2:hk2-api</include>
<include>org.glassfish.hk2:hk2-utils</include>
<include>org.glassfish.hk2:hk2-locator</include>
<include>org.glassfish.hk2:osgi-resource-locator</include>
<include>org.glassfish.hk2.external:aopalliance-repackaged</include>
<include>org.codehaus.jackson:jackson-core-asl</include>
<include>org.codehaus.jackson:jackson-mapper-asl</include>
<include>org.codehaus.jackson:jackson-jaxrs</include>
<include>org.codehaus.jackson:jackson-xc</include>
<include>org.javassist:javassist</include>
<include>javax.annotation:javax.annotation-api</include>
<include>org.glassfish.hk2.external:javax.inject</include>
<include>javax.ws.rs:javax.ws.rs-api</include>
<include>org.glassfish.jersey.core:jersey-client</include>
<include>org.glassfish.jersey.core:jersey-common</include>
<include>org.glassfish.jersey.bundles.repackaged:jersey-guava</include>
<include>org.glassfish.jersey.media:jersey-media-json-jackson</include>
<include>org.json:json</include>
<include>com.myproj:JAXRS</include>
</includes>
</artifactSet>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.myproj</groupId>
<artifactId>JAXRS</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>8.1.16.v20140903</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.myproj</groupId>
<artifactId>Server</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope>test</scope>
</dependency>
</dependencies>
Build gradle
plugins {
id 'com.github.johnrengelman.shadow' version '1.2.3'
}
shadowJar {
artifactSet {
include 'com.myproj:Util'
include 'org.glassfish.hk2:hk2-api'
include 'org.glassfish.hk2:hk2-utils'
include 'org.glassfish.hk2:hk2-locator'
include 'org.glassfish.hk2:osgi-resource-locator'
include 'org.glassfish.hk2.external:aopalliance-repackaged'
include 'org.codehaus.jackson:jackson-core-asl'
include 'org.codehaus.jackson:jackson-mapper-asl'
include 'org.codehaus.jackson:jackson-jaxrs'
include 'org.codehaus.jackson:jackson-xc'
include 'org.javassist:javassist'
include 'javax.annotation:javax.annotation-api'
include 'org.glassfish.hk2.external:javax.inject'
include 'javax.ws.rs:javax.ws.rs-api'
include 'org.glassfish.jersey.core:jersey-client'
include 'org.glassfish.jersey.core:jersey-common'
include 'org.glassfish.jersey.bundles.repackaged:jersey-guava'
include 'org.glassfish.jersey.media:jersey-media-json-jackson'
include 'org.json:json'
include 'com.myproj:JAXRS'
}
relocation {
pattern = 'jersey.repackaged'
shadedPattern = 'myproj.repackaged'
}
relocation {
pattern = 'javassist'
shadedPattern = 'myproj.repackaged.javassist'
}
relocation {
pattern = 'org.aopalliance'
shadedPattern = 'myproj.repackaged.org.aopalliance'
}
relocation {
pattern = 'org.apache.logging'
shadedPattern = 'myproj.repackaged.org.apache.logging'
}
relocation {
pattern = 'org.codehaus.jackson'
shadedPattern = 'myproj.repackaged.org.codehaus.jackson'
}
relocation {
pattern = 'org.glassfish.hk2'
shadedPattern = 'myproj.repackaged.org.glassfish.hk2'
}
relocation {
pattern = 'org.glassfish.jersey'
shadedPattern = 'myproj.repackaged.org.glassfish.jersey'
}
relocation {
pattern = 'org.json'
shadedPattern = 'myproj.repackaged.org.json'
}
relocation {
pattern = 'org.jvnet'
shadedPattern = 'myproj.repackaged.org.jvnet'
}
relocation {
pattern = 'javax.annotation'
shadedPattern = 'myproj.repackaged.javax.annotation'
}
relocation {
pattern = 'javax.inject'
shadedPattern = 'myproj.repackaged.javax.inject'
}
relocation {
pattern = 'javax.ws'
shadedPattern = 'myproj.repackaged.javax.ws'
}
}
dependencies {
compile project(':JAXRS')
compile project(':Server')
testCompile group: 'org.testng',name: 'testng',version:'6.8.8'
compile(group: 'org.eclipse.jetty',name: 'jetty-servlet',version:'8.1.16.v20140903') {
/* This dependency was originally in the Maven provided scope,but the project was not of type war.
This behavior is not yet supported by Gradle,so this dependency has been converted to a compile dependency.
Please review and delete this closure when resolved. */
}
}
task genericIntegrationJar(type: Jar) {
baseName = 'myproj-integration-1.2'
from { configurations.external.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
test.useTestNG()
When I'm clean, I get the following exceptions
FAILURE: Build Failed with an exception.
* Where:
Build file '/Users/mac8/POS/MobilePosSolution/Generic-Integration/build.gradle' line: 2
* What went wrong:
Error resolving plugin [id: 'com.github.johnrengelman.shadow',version: '1.2.3']
> The response from https://plugins.gradle.org/api/gradle/2.14.1/plugin/use/com.github.johnrengelman.shadow/1.2.3 was not a valid response from a Gradle Plugin Resolution Service: content type is 'text/html;charset=iso-8859-1',expected 'application/json' (status code: 404)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD Failed
Total time: 4.903 secs
If I need to build Please let me know if you have changed something in the gradle file to copy the shade plug-in
Solution
I just tried to click it and it seemed to work properly:
curl -v https://plugins.gradle.org/api/gradle/2.14.1/plugin/use/com.github.johnrengelman.shadow/1.2.3
* Trying 104.25.173.23...
* Connected to plugins.gradle.org (104.25.173.23) port 443 (#0)
* found 173 certificates in /etc/ssl/certs/ca-certificates.crt
* found 704 certificates in /etc/ssl/certs
* ALPN,offering http/1.1
* SSL connection using TLS1.2 / ECDHE_ECDSA_AES_128_GCM_SHA256
* server certificate verification OK
* server certificate status verification SKIPPED
* common name: ssl277771.cloudflaressl.com (matched)
* server certificate expiration date OK
* server certificate activation date OK
* certificate public key: EC
* certificate version: #3
* subject: OU=Domain Control Validated,OU=PositiveSSL Multi-Domain,CN=ssl277771.cloudflaressl.com
* start date: Sat,06 Aug 2016 00:00:00 GMT
* expire date: Sun,05 Feb 2017 23:59:59 GMT
* issuer: C=GB,ST=Greater Manchester,L=Salford,O=COMODO CA Limited,CN=COMODO ECC Domain Validation Secure Server CA 2
* compression: NULL
* ALPN,server accepted to use http/1.1
> GET /api/gradle/2.14.1/plugin/use/com.github.johnrengelman.shadow/1.2.3 HTTP/1.1
> Host: plugins.gradle.org
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed,24 Aug 2016 09:24:42 GMT
< Content-Type: application/json
< @R_769_301@: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=d0c64c916428b3abd24c29d0578251d2d1472030681; expires=Thu,24-Aug-17 09:24:41 GMT; path=/; domain=.gradle.org; HttpOnly
< Via: 1.1 vegur
< Server: cloudflare-Nginx
< CF-RAY: 2d75c0b211512378-FRA
<
{
"id" : "com.github.johnrengelman.shadow","version" : "1.2.3","implementation" : {
"gav" : "com.github.jengelman.gradle.plugins:shadow:1.2.3","repo" : "https://plugins.gradle.org/m2"
},"implementationType" : "M2_JAR","legacy" : true
* Connection #0 to host plugins.gradle.org left intact
Try and see what happens
- Edit
Just added it to the sample project, and the file downloaded well I also used the jcenter () repository to have dependencies
Download https://jcenter.bintray.com/com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.jar
Add it to build Gradle file and try
buildscript {
repositories {
jcenter()
}
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
