0

我在jboss-app.xmlpom.xml的.jboss-app.xmlear/META-INF

pom.xml根据这篇文章创建了我的,定义如下:

<plugin>
    <artifactId>maven-ear-plugin</artifactId>
    <configuration>
        <data-sources>
            <data-source>${artifactId}/src/main/resources/mytest-ds.xml</data-source>
        </data-sources>
        <jboss>${artifactId}/src/main/resources/jboss-app.xml</jboss>
        <defaultLibBundleDir>lib</defaultLibBundleDir>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
            </manifest>
        </archive>
        <modules>
            <ejbModule>
                <groupId>com.testproject</groupId>
                <artifactId>ejb-project</artifactId>
            </ejbModule>
        </modules>
    </configuration>
</plugin>

但是,我无法处理我的 custom jboss-app.xml。每次都会生成一个新的空描述符(没有定义的 ejb)。

4

3 回答 3

2

您应该能够简单地将您的源代码树包含jboss-app.xml在您的源代码树中,Maven 会将其拉入。

maven-ear-plugin 的项目目录结构应如下所示:

|-- pom.xml
`-- src
    `-- main
        `-- application
            `-- META-INF
                |-- application.xml
                `-- jboss-app.xml

然后运行mvn package以创建您的 EAR。假设您的 pom.xml 的包装是“耳朵”,它会将 jboss-app.xml 拉到您生成的耳朵中。

另外,我相信您的<datasources>...</datasources>配置需要在<jboss>...</jboss>标签内。

另见:http ://maven.40175.n5.nabble.com/Deployment-of-the-jboss-app-xml-file-td45009.html

于 2011-04-01T19:27:22.113 回答
1

从文档中,看起来jboss标签触发了jboss-app.xml. 如何省略这个标签并生成ear

于 2011-02-18T05:17:42.150 回答
0

替代方法是通过此处application.xml描述的方式提取数据源。但是由于需要成熟的 maven 工件,因此需要更长的方法(可能适用于 JBoss 以外的应用程序服务器):<jarModule>

project/ds/pom.xml:

<artifactId>project-ds</artifactId>
<packaging>jar</packaging>

<name>My DataSource</name>

project/ds/src/main/resources/my-ds.xml:

<datasources>
    <local-tx-datasource>
    ...

project/ear/pom.xml(假设驱动程序也打包在 EAR 中):

<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>project-ds</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>project-war</artifactId>
        <version>${project.version}</version>
        <type>war</type>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jtds</groupId>
        <artifactId>jtds</artifactId>
        <version>${jtds.driver.version}</version>
    </dependency>
</dependencies>
...
<plugin>
    <artifactId>maven-ear-plugin</artifactId>

    <configuration>
        <modules>
            <jarModule>
                <groupId>net.sourceforge.jtds</groupId>
                <artifactId>jtds</artifactId>
                <includeInApplicationXml>true</includeInApplicationXml>
            </jarModule>
            <jarModule>
                <groupId>${project.groupId}</groupId>
                <artifactId>project-ds</artifactId>
                <unpack>true</unpack>
                <uri>/</uri>
                <bundleFileName>my-ds.xml</bundleFileName>
                <includeInApplicationXml>true</includeInApplicationXml>
            </jarModule>
            <webModule>
                <groupId>${project.groupId}</groupId>
                <artifactId>project-war</artifactId>
                <contextRoot>${context.path}</contextRoot>
            </webModule>
        </modules>
    </configuration>
</plugin>

将产生META-INF/application.xml

<application>
  <display-name>project-ear</display-name>
  <description>...</description>
  <module>
    <java>jtds-1.2.4.jar</java>
  </module>
  <module>
    <java>my-ds.xml</java>
  </module>
  <module>
    <web>
      <web-uri>project-war-1.0.0.war</web-uri>
      <context-root>/</context-root>
    </web>
  </module>
</application>
于 2012-12-20T16:43:18.250 回答