maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Hoffer <dhoff...@gmail.com>
Subject Re: maven-dependency-plugin unpacking aar format?
Date Tue, 22 Jul 2014 15:14:12 GMT
No that's not correct for any maven project I've worked on...we use the MDP
extensively to unpack.  We use the MAP too but generally that's to create
some new artifact.

Here is the instructions on the MAP site:

assembly:unpackDeprecated. Use
org.apache.maven.plugins:maven-dependency-plugin goal: unpack or
unpack-dependencies instead.

I guess my point is...it doesn't matter to me what the plugin is
called...but the plugin that supports unpack today which is MDP should
support AAR too.





On Tue, Jul 22, 2014 at 9:08 AM, William Ferguson <
william.ferguson@xandar.com.au> 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 <domi@fortysix.ch> 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 <
> william.ferguson@xandar.com.au>
> > 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 <dhoffer6@gmail.com>
> > 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 <
> > >> william.ferguson@xandar.com.au> 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 <mgainty@hotmail.com>
> > >>> 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: william.ferguson@xandar.com.au
> > >>>>> To: users@maven.apache.org
> > >>>>>
> > >>>>> David, what the use case for unpacking the AAR?
> > >>>>>
> > >>>>>
> > >>>>> William
> > >>>>>
> > >>>>>
> > >>>>> On Tue, Jul 22, 2014 at 7:27 AM, David Hoffer <dhoffer6@gmail.com>
> > >>>> 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</outputDirectory>
> > >>>>>>
> > >>> <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 <
> > >>>> khmarbaise@gmx.de>
> > >>>>>> 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: users-unsubscribe@maven.apache.org
> > >>>>>>> For additional commands, e-mail: users-help@maven.apache.org
> > >>>>>>>
> > >>>>>>>
> > >>>>>>
> > >>>>
> > >>>>
> > >>>
> > >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message