[
https://issues.jboss.org/browse/SHRINKRES-149?page=com.atlassian.jira.plu...
]
Karel Piwko commented on SHRINKRES-149:
---------------------------------------
There are approaches to the problem:
a/ You let Maven identify what should be done
* Resolver will use pom.xml file and it will build artifact itself using MavenImporter
b/ You scan the classpath
* Classpath resolution is a hack. It basically goes through classpath elements and does
some assumptions about what directories belong to what submodules. In case a submodule is
identified (via having pom.xml in a specific location, as it is not possible to figure
that out from classpath itself), it will grab stuff according to the pom location.
So, basically workflow should be following:
1/ Parse classpath
2/ Figure out POM file next to the classpath - that would be a slow operation as it would
require us to traverse file system
3/ Parse pom files and identify what elements of classpath match what G:A:Vs
4/ Package classpath directories as jars/wars/ears based on information in pom.xml
As you can see, there is no easy way how to propagate information from Eclipse here. If
Eclipse has different classpath than pom.xml, we have no information how to build the
SNAPSHOT jar.
So, I'd rather suggest you to let ShrinkWrap MavenImporter build .../../pom.xml file
yourself. If you need some specific Eclipse stuff to get propagated there, the best way
would be to create a profile that will be activated (e.g. via a system property) when
tested from IDE.
[~m_baechler] Would that help?
Maven classpathworkspace resolver shouldn't assume classes are
under target/classes
-----------------------------------------------------------------------------------
Key: SHRINKRES-149
URL:
https://issues.jboss.org/browse/SHRINKRES-149
Project: ShrinkWrap Resolvers
Issue Type: Feature Request
Affects Versions: 2.0.0
Reporter: Matthieu Baechler
Assignee: Andrew Rubinger
To avoid conflicting builds between Maven and Eclipse, I put eclipse build into a
"eclipse-build/classes" directory.
Considering this configuration, with the following code :
{code:java}
Maven.resolver()
.offline()
.loadPomFromFile("../../pom.xml")
.resolve("com.linagora.obm:services-module:2.6.0-SNAPSHOT")
.withClassPathResolution(true)
.withTransitivity()
.asFile();
{code}
Maven resolver find my services-module on the classpath, but when trying a build a jar,
it fails in MavenResolvedArtifactImpl.artifactToFile :
{code:java}
// SHRINKRES-102, allow test classes to be packaged as well
File root = new File(artifact.getFile().getParentFile(),
"target/classes");
{code}
In my case, target/classes contains maven build result and not what's on the
classpath.
Can this resolver use the classes on the classpath instead ?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira