Hi Henrik,
Looks like you've found a bug with regards to the system and test 
transitive dependencies being pulled in.  I'll take a look at that in more 
detail and raise an issue for it.

 I'd never noticed before but the same thing is happening in my project. I 
haven't got any system dependencies so that's not a problem but I've got 
junit in my jnlp bundle. Of course, that doesn't cause any trouble at 
runtime but still it shouldn't be there. 

Do you know why there is a dependency on the sun.jre:jnlp jar? Are you 
declaring it explicitly anywhere? 

Just curious about your Configurator project. You say it has 'pom' 
packaging? Shouldn't this be a 'war' project?

To avoid pulling in both the obfuscated and unobfuscated core artifacts 
you could try declaring them with 'provided' scope in your client project. 
I often use provided scope to avoid these sorts of transitive dependency 
problems, not just with the webstart plugin.


Cheers,
Kevin









"Henrik Dohlmann" <[EMAIL PROTECTED]> 
19/10/2007 09:42
Please respond to
[email protected]


To
<[email protected]>
cc

Subject
RE: [mojo-user] Use webstart plugin with proguard






Okay, tried it out with an even more depressing result. Not only are both 
the specified proguard classified artifact and the transitive dep 
unclassified artifact added, now I also get test and system scoped deps as 
well?
 
What I have is the following:
·         Core ? normal pom using proguard plugin with attach to create 
both a core-version.jar and a core-version-pg.jar
·         Client ? normal pom that depends upon core using proguard plugin 
with attach to create both a client-version.jar and a 
client-version-pg.jar
·         Configurator ? pom pom where I use the webstart: 
jnlp-download-servlet goal bound to the package phase.
The last one contains:
 
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>webstart-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>jnlp-download-servlet</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <jnlpFiles>
            <jnlpFile>
              <templateFilename>template.vm</templateFilename>
              <outputFilename>configurator.jnlp</outputFilename>
              <jarResources>
                <jarResource>
                  <groupId>com.3dfacto.virtubuild</groupId>
                  <artifactId>client</artifactId>
                  <version>5.0-SNAPSHOT</version>
                  <classifier>pg</classifier>
                  <mainClass>defacto.clientgui.Configurator</mainClass>
                </jarResource>
                <jarResource>
                  <groupId>com.3dfacto.virtubuild</groupId>
                  <artifactId>core</artifactId>
                  <version>5.0-SNAPSHOT</version>
                  <classifier>pg</classifier>
                </jarResource>
        </configuration>
      </plugin>
 
The result of running ?mvn clean package ?X? is as follows:
[INFO] [webstart:jnlp-download-servlet {execution: default}]
[INFO] No resources found in 
D:\3dwork_svn\configurator\src\main\jnlp\resources
[DEBUG] Skipping disabled repository central
[DEBUG] client: using locally installed snapshot
[DEBUG] Checking if the loaded class contains a main method.
[WARNING] Something failed while checking if the main class contains the 
main() method. This is probably due to the limited classpath we have 
provided
 to the class loader. The specified main class 
(defacto.clientgui.Configurator) found in the jar is *assumed* to contain 
a main method... defacto/read
er/DFParser
[DEBUG] Skipping disabled repository central
[DEBUG] core: using locally installed snapshot
[DEBUG] com.3dfacto.virtubuild:configurator:pom:5.0-SNAPSHOT (selected for 
null)
[DEBUG] client: using locally installed snapshot
[DEBUG]   com.3dfacto.virtubuild:client:jar:pg:5.0-SNAPSHOT (selected for 
null)
[DEBUG] core: using locally installed snapshot
[DEBUG]     com.3dfacto.virtubuild:core:jar:5.0-SNAPSHOT:compile (selected 
for compile)
[DEBUG]       
backport-util-concurrent:backport-util-concurrent:jar:3.0:compile 
(selected for compile)
[DEBUG]     
backport-util-concurrent:backport-util-concurrent:jar:3.0:compile 
(selected for compile)
[DEBUG]     junit:junit:jar:3.8.1:test (selected for test)
[DEBUG]     sun.jre:jnlp:jar:1.4:system (selected for system)
[DEBUG]   com.3dfacto.virtubuild:core:jar:pg:5.0-SNAPSHOT (selected for 
null)
[DEBUG] core: using locally installed snapshot
[DEBUG] transitively resolved artifacts = 
[backport-util-concurrent:backport-util-concurrent:jar:3.0:compile, 
com.3dfacto.virtubuild:client:jar:pg:5.0
-SNAPSHOT, com.3dfacto.virtubuild:core:jar:pg:5.0-SNAPSHOT, 
com.3dfacto.virtubuild:core:jar:5.0-SNAPSHOT:compile, 
sun.jre:jnlp:jar:1.4:system, junit:j
unit:jar:3.8.1:test]
[INFO] Creating JNLP output directory: 
D:\3dwork_svn\configurator\target\configurator-5.0-SNAPSHOT\webstart
[INFO] 
------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] 
------------------------------------------------------------------------
 
I am not used to digest this output, so I do not know why core is 
mentioned 3 times at top-level.
 
Is there any way I can resolve this? 
Would it help to try and make a multi-module project instead?
 
Regards,
Henrik
 
From: Kevin Stembridge [mailto:[EMAIL PROTECTED] 
Sent: 18. oktober 2007 14:38

So, for a bit more info on how I'm using webstart and proguard: 
I have the following projects: 
* client - A normal maven jar project. 
* webstart - A normal maven war project. 

There are also more projects that are transitive dependencies of the 
client project. 

The client project uses the proguard-maven-plugin to create a second, 
obfuscated jar with a classifier, and the build-helper-maven-plugin to 
attach the extra jar to the project and install it in my local repository. 
It sounds like this is what you're already doing. 

The war project uses the webstart plugin to add a jnlp bundle. I can 
switch from using an obfuscated jars to a non-obfuscated jar just by 
commenting a single line in the pom.xml, the <classifier>obf</classifier>. 
Or I could have done it using profiles. 

Hope this helps. Let me know if you need more info. 


---

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional 
EU corporate and regulatory disclosures.

Reply via email to