Mark Combellack wrote:
On 24/05/10 22:09, Mark Combellack wrote:
On 24/05/10 12:37, Simon Nash wrote:
Luciano Resende wrote:
On Sun, May 23, 2010 at 1:52 PM, Raymond Feng <[email protected]>
wrote:
I tried to run the build on Windows and everything works.
For the Mac OS issue, I ran a build from the root first and I don't see
anything copied into binaries/target. Then I tried to run the build
again
from binaries/ and binaries/bundle. None of them helped.
I saw the message:
[INFO] Copying files to
/Users/rfeng/Projects/tuscany/sca-java-1.x/tags/travelsample-1.0-RC1/binaries/target/.
But there is nothing under binaries (not even the target folder).
I found out that the "binaries/target" folder is not created by
maven during
the build on Mac. If I create it manually, then the build successfully
copies all the files into binaries/target. So a quick workaround is to
create binaries/target as part of the build.
Thanks,
Raymond
I tried building from the tag, and I'm experiencing the same behavior
(in the same Mac OS environment). I have played with some of the
assembly files trying to fix but didn't seem to find any obvious
solution...
This might a bit tricky for me to debug as I don't have access to Mac
OSX.
I'd be interested to know if the problem is specific to Mac OSX or also
affect other Linux OSs. Could anyone try this?
I'm also interested to know which version of maven is producing the
failure. I'm using maven 2.0.10.
The output directory is set to "../target" in the pom.xml for
binaries/bundle
using the <outputDirectory> element of the maven-assembly-plugin
configuration.
There's similar code in the pom.xml files for binaries/jaxws,
binaries/ode
and binaries/openejb. For some reason on Mac OSX the maven assembly
plugin
isn't creating this "../target" directory.
Some suggestions:
1. In the pom.xml for binaries/bundle, force the creation of the
"../target"
directory by replacing the current maven-antrun-plugin <plugin>
section
by the following:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>package-mkdir</id>
<phase>package</phase>
<configuration>
<tasks>
<mkdir dir="../target"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>install-delete</id>
<phase>install</phase>
<configuration>
<tasks>
<delete dir="../target/domainconfig/META-INF"
includeemptydirs="true"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
This works for me on Windows and forces explicit creation of the
directory.
The build output is as follows:
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] Apache Tuscany SCA Tours Binaries Bundle
[INFO] Apache Tuscany SCA Tours Binaries JAX-WS Dependencies for
JDK 5
[INFO] Apache Tuscany SCA Tours Binaries ODE Database
[INFO] Apache Tuscany SCA Tours Binaries OpenEJB Dependencies
[INFO] Apache Tuscany SCA Tours Binaries
[INFO]
------------------------------------------------------------------------
[INFO] Building Apache Tuscany SCA Tours Binaries Bundle
[INFO] task-segment: [install]
[INFO]
------------------------------------------------------------------------
[INFO] [site:attach-descriptor]
[INFO] [antrun:run {execution: package-mkdir}]
[INFO] Executing tasks
[mkdir] Created dir: E:\td\book\rel\travelsample\binaries\target
[INFO] Executed tasks
[INFO] [assembly:single {execution: distribution-package}]
[INFO] Reading assembly descriptor: ../src/main/assembly/bin.xml
[INFO] Processing DependencySet (output=util)
...etc.
I have placed a version of this file in my
people.apache.org/~nash/tuscany/
directory as travelsample-binaries-bundle-pom-patch.xml. Could
someone try
replacing the binaries/bundle pom.xml from the distribution by this
version
before running the top-level build of travelsample on Mac OSX to
see if this
fixes the problem?
2. Instead of using <outputDirectory>../target</outputDirectory> in the
maven-assembly-plugin configurations, use
<directory>../target</directory>
within the <profile> <build> configurations in all of the pom.xml
files
for the "binaries" subdirectories. I don't like this as much as
option 1
because it's a more extensive change and it also has the unfortunate
side effect of polluting the binaries/target directory by creating an
empty archive-tmp directory there.
Simon
I have just tried this on Ubuntu with a clean checkout of the tag and an
empty Maven repository. I also do not have any files in the
binaries/target directories
What I do get is the following:
[INFO]
------------------------------------------------------------------------
[INFO] Building Apache Tuscany SCA Tours Binaries JAX-WS Dependencies
for JDK 5
[INFO] task-segment: [clean, install]
[INFO]
------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [site:attach-descriptor {execution: default-attach-descriptor}]
[INFO] [assembly:single {execution: distribution-package}]
[INFO] Reading assembly descriptor: ../src/main/assembly/bin-jaxws.xml
*[INFO] Copying files to
/home/mark/dev/apache/travelsample-1.0-RC1/binaries/target/.
[WARNING] Assembly file:
/home/mark/dev/apache/travelsample-1.0-RC1/binaries/target/. is not a
regular file (it may be a directory). It cannot be attached to the
project build for installation or deployment.
*[INFO] [install:install {execution: default-install}]
[INFO] Installing
/home/mark/dev/apache/travelsample-1.0-RC1/binaries/jaxws/pom.xml to
/home/mark/.m2/repository/org/apache/tuscany/sca/scatours-binaries-jaxws/1.0/scatours-binaries-jaxws-1.0.pom
Notice the warning about binaries/target/. not being a regular file.
This happens for each of the binaries module builds
I am using Maven 2.2.1 with Sun JDK 1.6.0_20 on Ubuntu 10.04.
I've not yet had a chance to look into how I might fix it.
Mark
I think I might have worked out what it is. If you do a mvn clean
install, it does not work because it builds the top level binaries
module last:
m...@storm:~/dev/apache/travelsample-1.0-RC1/binaries$ mvn install
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] Apache Tuscany SCA Tours Binaries Bundle
[INFO] Apache Tuscany SCA Tours Binaries JAX-WS Dependencies for JDK 5
[INFO] Apache Tuscany SCA Tours Binaries ODE Database
[INFO] Apache Tuscany SCA Tours Binaries OpenEJB Dependencies
[INFO] Apache Tuscany SCA Tours Binaries
However, the other sub modules are writing their output to the ../target
directory which has not yet been created since the top level Binaries
module has not been built yet.
If I do the following in the Binaries directory, it works for me:
mvn clean
mkdir target
mvn install
I then get all the files I expect in the binaries/target directory.
Does this fix it on MacOS too?
Mark
I see the same reactor order on Windows, yet for some reason on Windows
the build of SCA Tours Binaries Bundle is able to create the directory.
This workaround is some progress (I think Raymond found the same thing)
but I'm not very happy to release the travel sample with this issue.
Are you able to try the travelsample-binaries-bundle-pom-patch.xml file
that I put into my people.apache.org/~nash/tuscany/ directory?
If this doesn't fix it I have worked out how to make my second option
(changing the target directory for the build) work properly. I'll hold
off on this until someone has been able to try the existing patch file.
Simon