Sorry to interject, but isn¹t the unpack goal of the maven-assembly-plugin deprecated? The documentation actually refers users to the MDP¹s unpack capabilities: https://maven.apache.org/plugins/maven-assembly-plugin/plugin-info.html
That page is dated from 2012, so I¹m not sure if something has changed since it was last published. On 7/22/14, 8:08 AM, "William Ferguson" <[email protected]> wrote: >MDP = maven-dependency-plugin > >@domi yes you would normally use something like the maven-assembly-plugin >to disassemble (unpack) an archive. > > >On Wed, Jul 23, 2014 at 12:49 AM, domi <[email protected]> wrote: > >> I think to recall a thread on the dev list about plans to remove the >> unpack goal from the dependency plugin, but I can¹t find it anymoreŠ >> regards Domi >> >> On 22.07.2014, at 16:29, William Ferguson >><[email protected]> >> wrote: >> >> > I totally agree that it makes sense for the dependency plugin to >>unpack >> the >> > AAR just like all other archives. >> > >> > I just don't understand why you need the MDP to do so. >> > >> > >> > On Tue, Jul 22, 2014 at 10:58 PM, David Hoffer <[email protected]> >> wrote: >> > >> >> No that was just an example so I could create a sample project. >>Don't >> read >> >> too much into this. They are just AAR dependencies (in my case they >> come >> >> from our build not public). The maven dependency plugin should >>handle >> >> these no different than it handles jars/etc. >> >> >> >> >> >> >> >> >> >> On Mon, Jul 21, 2014 at 11:32 PM, William Ferguson < >> >> [email protected]> wrote: >> >> >> >>> So an Android library is packaging WSDL inside itself and is >>expecting >> >> you >> >>> to use it at build time? >> >>> >> >>> >> >>> On Tue, Jul 22, 2014 at 8:53 AM, Martin Gainty <[email protected]> >> >>> wrote: >> >>> >> >>>> Here is an aar straight from Axis version example: >> >>>> >> >>>> //layout of version.aar: >> >>>> >> >>>> created: META-INF/ >> >>>> inflated: META-INF/MANIFEST.MF >> >>>> created: sample/ >> >>>> created: sample/axisversion/ >> >>>> inflated: sample/axisversion/Version.class >> >>>> inflated: META-INF/services.xml >> >>>> >> >>>> >> >>>> //org.apache.axis2.deployment.DeploymentEngine axis code used to >> >>>> populateService with .aar contents: >> >>>> >> >>>> protected ArrayList populateService(AxisServiceGroup >>serviceGroup, >> >>>> URL servicesURL, >> >>>> String serviceName) throws >> >>>> DeploymentException { >> >>>> try { >> >>>> serviceGroup.setServiceGroupName(serviceName); >> >>>> ClassLoader serviceClassLoader = >>Utils.createClassLoader( >> >>>> new URL[]{servicesURL}, >> >>>> axisConfig.getServiceClassLoader(), >> >>>> true, >> >>>> (File) >> >>>> >> >> >> >>axisConfig.getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR), >> >>>> axisConfig.isChildFirstClassLoading()); >> >>>> String metainf = "meta-inf"; >> >>>> >> >> serviceGroup.setServiceGroupClassLoader(serviceClassLoader); >> >>>> //processing wsdl.list >> >>>> InputStream wsdlfilesStream = >> >>>> >> >>>> serviceClassLoader.getResourceAsStream("meta-inf/wsdl.list"); >> >>>> if (wsdlfilesStream == null) { >> >>>> wsdlfilesStream = >> >>>> serviceClassLoader.getResourceAsStream("META-INF/wsdl.list"); >> >>>> if (wsdlfilesStream != null) { >> >>>> metainf = "META-INF"; >> >>>> } >> >>>> } >> >>>> HashMap servicesMap = new HashMap(); >> >>>> if (wsdlfilesStream != null) { >> >>>> ArchiveReader reader = new ArchiveReader(); >> >>>> BufferedReader input = new BufferedReader(new >> >>>> InputStreamReader(wsdlfilesStream)); >> >>>> String line; >> >>>> while ((line = input.readLine()) != null) { >> >>>> line = line.trim(); >> >>>> if (line.length() > 0 && line.charAt(0) != '#') >>{ >> >>>> line = metainf + "/" + line; >> >>>> try { >> >>>> List services = >> >>> reader.getAxisServiceFromWsdl( >> >>>> >> >>>> serviceClassLoader.getResourceAsStream(line), >> >>>> serviceClassLoader, line); >> >>>> if (services != null) { >> >>>> for (Object service : services) { >> >>>> AxisService axisService = >> >>>> (AxisService) service; >> >>>> >> >>> servicesMap.put(axisService.getName(), >> >>>> axisService); >> >>>> } >> >>>> } >> >>>> >> >>>> } catch (Exception e) { >> >>>> throw new DeploymentException(e); >> >>>> } >> >>>> } >> >>>> } >> >>>> } >> >>>> InputStream servicexmlStream = >> >>>> >> >>>> serviceClassLoader.getResourceAsStream("META-INF/services.xml"); >> >>>> if (servicexmlStream == null) { >> >>>> servicexmlStream = >> >>>> serviceClassLoader.getResourceAsStream("meta-inf/services.xml"); >> >>>> } else { >> >>>> metainf = "META-INF"; >> >>>> } >> >>>> if (servicexmlStream == null) { >> >>>> throw new DeploymentException( >> >>>> >> >>>> Messages.getMessage(DeploymentErrorMsgs.SERVICE_XML_NOT_FOUND, >> >>>> servicesURL.toString())); >> >>>> } >> >>>> DescriptionBuilder builder = new >> >>>> DescriptionBuilder(servicexmlStream, configContext); >> >>>> OMElement rootElement = builder.buildOM(); >> >>>> String elementName = rootElement.getLocalName(); >> >>>> >> >>>> if (TAG_SERVICE.equals(elementName)) { >> >>>> AxisService axisService = null; >> >>>> String wsdlLocation = "META-INF/service.wsdl"; >> >>>> InputStream wsdlStream = >> >>>> >> >>>> serviceClassLoader.getResourceAsStream(wsdlLocation); >> >>>> URL wsdlURL = >>serviceClassLoader.getResource(metainf + >> >>>> "/service.wsdl"); >> >>>> if (wsdlStream == null) { >> >>>> wsdlLocation = "META-INF/" + serviceName + >>".wsdl"; >> >>>> wsdlStream = serviceClassLoader >> >>>> .getResourceAsStream(wsdlLocation); >> >>>> wsdlURL = >> >>> serviceClassLoader.getResource(wsdlLocation); >> >>>> } >> >>>> if (wsdlStream != null) { >> >>>> WSDL11ToAxisServiceBuilder >>wsdl2AxisServiceBuilder >> >> = >> >>>> new >>WSDL11ToAxisServiceBuilder(wsdlStream, >> >>>> null, null); >> >>>> File file = Utils.toFile(servicesURL); >> >>>> if (file != null && file.exists()) { >> >>>> >>wsdl2AxisServiceBuilder.setCustomWSDLResolver( >> >>>> new >>AARBasedWSDLLocator(wsdlLocation, >> >>>> file, wsdlStream)); >> >>>> wsdl2AxisServiceBuilder.setCustomResolver( >> >>>> new AARFileBasedURIResolver(file)); >> >>>> } >> >>>> if (wsdlURL != null) { >> >>>> >> >>>> wsdl2AxisServiceBuilder.setDocumentBaseUri(wsdlURL.toString()); >> >>>> } >> >>>> axisService = >> >>>> wsdl2AxisServiceBuilder.populateService(); >> >>>> axisService.setWsdlFound(true); >> >>>> axisService.setCustomWsdl(true); >> >>>> axisService.setName(serviceName); >> >>>> } >> >>>> if (axisService == null) { >> >>>> axisService = new AxisService(serviceName); >> >>>> } >> >>>> >> >>>> axisService.setParent(serviceGroup); >> >>>> axisService.setClassLoader(serviceClassLoader); >> >>>> >> >>>> ServiceBuilder serviceBuilder = new >> >>>> ServiceBuilder(configContext, axisService); >> >>>> AxisService service = >> >>>> serviceBuilder.populateService(rootElement); >> >>>> >> >>>> ArrayList serviceList = new ArrayList(); >> >>>> serviceList.add(service); >> >>>> return serviceList; >> >>>> } else if (TAG_SERVICE_GROUP.equals(elementName)) { >> >>>> ServiceGroupBuilder groupBuilder = new >> >>>> ServiceGroupBuilder(rootElement, servicesMap, >> >>>> configContext); >> >>>> ArrayList servicList = >> >>>> groupBuilder.populateServiceGroup(serviceGroup); >> >>>> Iterator serviceIterator = servicList.iterator(); >> >>>> while (serviceIterator.hasNext()) { >> >>>> AxisService axisService = (AxisService) >> >>>> serviceIterator.next(); >> >>>> String wsdlLocation = "META-INF/service.wsdl"; >> >>>> InputStream wsdlStream = >> >>>> >> >>>> serviceClassLoader.getResourceAsStream(wsdlLocation); >> >>>> URL wsdlURL = >> >>>> serviceClassLoader.getResource(wsdlLocation); >> >>>> if (wsdlStream == null) { >> >>>> wsdlLocation = "META-INF/" + serviceName + >> >>> ".wsdl"; >> >>>> wsdlStream = serviceClassLoader >> >>>> .getResourceAsStream(wsdlLocation); >> >>>> wsdlURL = >> >>>> >> >>>> serviceClassLoader.getResource(wsdlLocation); >> >>>> } >> >>>> if (wsdlStream != null) { >> >>>> WSDL11ToAxisServiceBuilder >> >>> wsdl2AxisServiceBuilder >> >>>> = >> >>>> new >> >>> WSDL11ToAxisServiceBuilder(wsdlStream, >> >>>> axisService); >> >>>> File file = Utils.toFile(servicesURL); >> >>>> if (file != null && file.exists()) { >> >>>> >> >>> wsdl2AxisServiceBuilder.setCustomWSDLResolver( >> >>>> new >> >> AARBasedWSDLLocator(wsdlLocation, >> >>>> file, wsdlStream)); >> >>>> >>wsdl2AxisServiceBuilder.setCustomResolver( >> >>>> new >>AARFileBasedURIResolver(file)); >> >>>> } >> >>>> if (wsdlURL != null) { >> >>>> >> >>>> wsdl2AxisServiceBuilder.setDocumentBaseUri(wsdlURL.toString()); >> >>>> } >> >>>> axisService = >> >>>> wsdl2AxisServiceBuilder.populateService(); >> >>>> axisService.setWsdlFound(true); >> >>>> axisService.setCustomWsdl(true); >> >>>> // Set the default message receiver for the >> >>>> operations that were >> >>>> // not listed in the services.xml >> >>>> Iterator operations = >> >>> axisService.getOperations(); >> >>>> while (operations.hasNext()) { >> >>>> AxisOperation operation = >>(AxisOperation) >> >>>> operations.next(); >> >>>> if (operation.getMessageReceiver() == >> >> null) { >> >>>> >> >>>> operation.setMessageReceiver(loadDefaultMessageReceiver( >> >>>> >> >>>> operation.getMessageExchangePattern(), axisService)); >> >>>> } >> >>>> } >> >>>> } >> >>>> } >> >>>> return servicList; >> >>>> } >> >>>> } catch (IOException e) { >> >>>> throw new DeploymentException(e); >> >>>> } catch (XMLStreamException e) { >> >>>> throw new DeploymentException(e); >> >>>> } >> >>>> return null; >> >>>> } >> >>>> >> >>>> does this answer your question? >> >>>> Martin >> >>>> ______________ >> >>>> >> >>>> >> >>>>> Date: Tue, 22 Jul 2014 07:56:55 +1000 >> >>>>> Subject: Re: maven-dependency-plugin unpacking aar format? >> >>>>> From: [email protected] >> >>>>> To: [email protected] >> >>>>> >> >>>>> David, what the use case for unpacking the AAR? >> >>>>> >> >>>>> >> >>>>> William >> >>>>> >> >>>>> >> >>>>> On Tue, Jul 22, 2014 at 7:27 AM, David Hoffer <[email protected]> >> >>>> wrote: >> >>>>> >> >>>>>> Here is a simplified project showing my use-case, I hope this >> >> helps. >> >>>> Note >> >>>>>> I'm using unpack-dependencies as the aar is a module in the same >> >>>> project; >> >>>>>> however I assume the same problem exists with unpack, if that's >>the >> >>>> case >> >>>>>> that would make the test project even simpler. >> >>>>>> >> >>>>>> <?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.company.project</groupId> >> >>>>>> <artifactId>service</artifactId> >> >>>>>> <version>1.0-SNAPSHOT</version> >> >>>>>> >> >>>>>> <packaging>pom</packaging> >> >>>>>> >> >>>>>> <dependencies> >> >>>>>> <!--note: maven-dependency-plug fails reporting that aar >>is >> >>> not >> >>>>>> supported--> >> >>>>>> <dependency> >> >>>>>> <groupId>com.company.project</groupId> >> >>>>>> <artifactId>axis-service</artifactId> >> >>>>>> <type>aar</type> >> >>>>>> <version>1.0-SNAPSHOT</version> >> >>>>>> </dependency> >> >>>>>> <!--note: I assume it will have the same problem unpacking >> >> a >> >>>> public >> >>>>>> artifact such as this--> >> >>>>>> <dependency> >> >>>>>> <groupId>com.helpshift</groupId> >> >>>>>> <artifactId>android-aar</artifactId> >> >>>>>> <version>3.4.2</version> >> >>>>>> <type>aar</type> >> >>>>>> </dependency> >> >>>>>> </dependencies> >> >>>>>> >> >>>>>> <build> >> >>>>>> <plugins> >> >>>>>> <plugin> >> >>>>>> <groupId>org.apache.maven.plugins</groupId> >> >>>>>> <artifactId>maven-dependency-plugin</artifactId> >> >>>>>> <executions> >> >>>>>> <execution> >> >>>>>> <id>unpack-axis-service</id> >> >>>>>> <phase>generate-resources</phase> >> >>>>>> <goals> >> >>>>>> <goal>unpack-dependencies</goal> >> >>>>>> </goals> >> >>>>>> <configuration> >> >>>>>> >> >>>>>> <includeArtifactIds>axis-service</includeArtifactIds> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>> >> >>> >> >> >> >><outputDirectory>${project.build.directory}/generated-resources/axis</out >>putDirectory> >> >>>>>> >> >>> <overWriteReleases>true</overWriteReleases> >> >>>>>> >> >>>> <overWriteSnapshots>true</overWriteSnapshots> >> >>>>>> >> >>>>>> <includes>META-INF/*.wsdl,META-INF/schema/**/*.xsd</includes> >> >>>>>> </configuration> >> >>>>>> </execution> >> >>>>>> </executions> >> >>>>>> </plugin> >> >>>>>> </plugins> >> >>>>>> </build> >> >>>>>> >> >>>>>> </project> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> On Mon, Jul 21, 2014 at 3:05 PM, Karl Heinz Marbaise < >> >>>> [email protected]> >> >>>>>> wrote: >> >>>>>> >> >>>>>>> HI David, >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>>> I'm getting the following error trying to unpack some files >> >> from >> >>> an >> >>>>>> aar. >> >>>>>>> >> >>>>>>>> Is this not supported? Is there any way to do this? >> >>>>>>>> >> >>>>>>>> Failed to execute goal >> >>>>>>>> >> >>>> >> >> >>org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack-dependencies >> >>>>>>>> (unpack-service) on project service: Unknown archiver type: No >> >>> such >> >>>>>>>> archiver: 'aar'. -> [Help 1] >> >>>>>>>> >> >>>>>>> >> >>>>>>> Could you please prepare a example project which reproduces the >> >>>>>>> problem..so i can create a JIRA issue for this... >> >>>>>>> >> >>>>>>> Kind regards >> >>>>>>> Karl-Heinz Marbaise >> >>>>>>> >> >>>>>>> >> >>> >>--------------------------------------------------------------------- >> >>>>>>> To unsubscribe, e-mail: [email protected] >> >>>>>>> For additional commands, e-mail: [email protected] >> >>>>>>> >> >>>>>>> >> >>>>>> >> >>>> >> >>>> >> >>> >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
