Hallo,
ich verwende das von Gradle-Plugin von e-spirit, um ein FSM-Modul zu bauen.
Das Modul soll ein Exectable (Public Component) und eine WebApp enthalten.
Ich benutze noch nicht die neueste Version des Plugins (2.1.2), weil ich noch den Legacy Mode brauche, aber ich hoffe, das tut nichts zur Sache.
Hier meine (vereinfachte) Projektstruktur:
+-- build.gradle.kts
+-- gradle.properties
+-- settings.gradle.kts
+-+ src
| +-+ main
| +-+ fsm-resources
| +-+ java
| +-+ com.relounge
| +-- MyExecutable.java (annotiert mit "@PublicComponent")
+-+ web
| +-- build.gradle.kts
| +-+ src
| +-+ main
| +-+ fsm-resources
| +-+ web
| +-- web.xml
| +-+ java
| +-+ com.relounge.web
| +-- MyPreviewApp.java (annotiert mit "@WebAppComponent")
Im Top Level "build.gradle.kts" habe ich
firstSpiritModule {
...
resourceMode = de.espirit.firstspirit.server.module.ModuleInfo.Mode.LEGACY
webAppComponent("My-Preview-Webapp", project(":web"))
}
Im "settings.gradle.kts" habe ich
include("web")
Im "build.gradle.kts" des Unterordners "web" habe ich
dependencies {
compileOnly(group = "de.espirit.firstspirit", name = "fs-isolated-runtime", version = fsRuntimeVersion)
fsWebCompile(group = "javax.servlet.jsp.jstl", name = "jstl", version = "1.2")
fsWebCompile(group = "org.apache.taglibs", name = "taglibs-standard-impl", version = "1.2.5")
}
Das erzeugte module.xml:
<?xml version="1.0" encoding="UTF-8"?>
<module>
<name>rl_fs-module</name>
<components>
<public>
<name>MyExecutable</name>
<displayname/>
<description/>
<class>com.relounge.MyExecutable</class>
</public>
<web-app scopes="project,global">
<name>My-Preview-Webapp</name>
<displayname>My-Preview-Webapp</displayname>
<description/>
<class>com.relounge.web.MyPreviewApp</class>
<web-xml>web/web.xml</web-xml>
<web-resources>
<resource name="com.relounge:fs-modules" version="0.0.1-SNAPSHOT">lib/fs-modules-0.0.1-SNAPSHOT.jar</resource>
<resource name="web" version="0.0.1-SNAPSHOT">web</resource>
<resource name="fs-modules:web" version="0.0.1-SNAPSHOT">lib/web-0.0.1-SNAPSHOT.jar</resource>
<resource name="javax.servlet.jsp.jstl:jstl" version="1.2" minVersion="1.2">lib/jstl-1.2.jar</resource>
<resource name="org.apache.taglibs:taglibs-standard-impl" version="1.2.5" minVersion="1.2.5">lib/taglibs-standard-impl-1.2.5.jar</resource>
</web-resources>
</web-app>
</components>
<resources>
<resource name="com.relounge:fs-modules" version="0.0.1-SNAPSHOT" scope="module" mode="legacy">lib/fs-modules-0.0.1-SNAPSHOT.jar</resource>
<resource name="commons-lang:commons-lang" scope="module" mode="legacy" version="2.6" minVersion="2.6">lib/commons-lang-2.6.jar</resource>
....
</resources>
</module>
Meine Frage wäre, wie ich es hinkriege, dass in den web-resources der Webapp nicht mehr das "lib/fs-modules-0.0.1-SNAPSHOT.jar" auftaucht -
denn in diesem jar sind ja nur die Java Klassen für das Executable, das ich aber in der Webapp gar nicht brauche.
Die in der Webapp benötigten Klassen sind ja in lib/web-0.0.1-SNAPSHOT.jar.
Irgendwelche Ideen?
Vielen Dank!!
Gruß,
Benny