首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JWSC for weblogic 12c with Maven

JWSC for weblogic 12c with Maven
EN

Stack Overflow用户
提问于 2013-05-02 01:41:55
回答 1查看 4.9K关注 0票数 1

我们正在从Weblogic 10g升级到12c的过程中。我们的代码库的一部分是webservices,所以我们使用weblogic-maven-plugin

代码语言:javascript
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>weblogic-maven-plugin</artifactId>
    <version>2.9.5</version>
    <configuration>
        <contextPath>ws</contextPath>
        <keepGenerated>true</keepGenerated>
    </configuration>
    <executions>
        <execution>
            <phase>compile</phase>
            <goals>
                <goal>jwsc</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.5</version>
            <scope>system</scope>
            <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>weblogic</groupId>
            <artifactId>weblogic</artifactId>
            <version>${weblogic.version}</version>
            <scope>system</scope>
            <systemPath>${bea.lib}/weblogic.jar</systemPath>
        </dependency>
    </dependencies>
</plugin>

我看到的构建错误是

代码语言:javascript
复制
[ERROR] Failed to execute goal org.codehaus.mojo:weblogic-maven-plugin:2.9.5:jwsc (default) on project webService: Execution default of goal org.codehaus.mojo:weblogic-maven-plugin:2.9.5:jwsc failed: Plugin org.codehaus.mojo:weblogic-maven-plugin:2.9.5 or one of its dependencies could not be resolved: Failure to find weblogic:webservices:jar:10.3.6 in http://ccicusbuild1/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

更深入的检查表明,该插件依赖于weblogic:weblogic:10.3.6weblogic:webservices:10.3.6。如前面的代码所示,我可以用weblogic:weblogic:12.1.1覆盖weblogic:weblogic:10.3.6。问题是webservices.jar不再是WebLogic12c的一部分,所以我没有什么可以覆盖依赖,也不能排除它。

weblogic-maven-plugin (http://mojo.codehaus.org/weblogic-maven-plugin/)的页面提到了对12c的支持,但没有提供任何细节。

我们的目标是能够通过maven运行JWSC。我是否可以对插件配置进行调整以使其正常工作,或者是否存在另一个插件,或者我是否需要咬紧牙关运行ant插件的代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-02 21:25:46

这是我们最终使用的解决方案。如果其他人有更好的东西,请把它贴出来。

pom.xml的插件部分

代码语言:javascript
复制
<plugins>
    <!--
        Below contains a work around to build web services for Weblogic 12c.
        weblogic-maven-plugin was how things were done (and was much cleaner)
        but at the time of this work around, it doesn't appear to support Weblogic 12c.

        If in the future, weblogic-maven-plugin or some other plugin become known,
        it should replace both parts of the work around.
     -->
    <!-- START OF WORK AROUND part 1-->
    <plugin>
      <groupId>org.codehaus.gmaven</groupId>
      <artifactId>gmaven-plugin</artifactId>
      <version>1.3</version>
      <executions>
        <execution>
          <id>set-main-artifact</id>
          <phase>package</phase>
          <goals>
            <goal>execute</goal>
          </goals>
          <configuration>
            <source>
              project.artifact.setFile(new File(project.build.directory+'/'+project.artifactId+'-'+project.version+'.war'))
            </source>
          </configuration>
        </execution>
      </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.6</version>
        <executions>
            <execution>
                <phase>prepare-package</phase>
                <configuration>
                    <target>
                        <property name="maven.compile.classpath" refid="maven.compile.classpath" />
                        <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
                        <property name="maven.test.classpath" refid="maven.test.classpath" />
                        <property name="maven.plugin.classpath" refid="maven.plugin.classpath" />
                        <ant antfile="src/main/ant/build.xml" target="all" />
                    </target>
                </configuration>
                <goals>
                    <goal>run</goal>
                </goals>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>1.7.1</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>ant-contrib</groupId>
                <artifactId>ant-contrib</artifactId>
                <version>1.0b2</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>weblogic</groupId>
                <artifactId>weblogic</artifactId>
                <version>${weblogic.version}</version>
                <scope>system</scope>
                <systemPath>${bea.lib}/weblogic.jar</systemPath>
            </dependency>
            <dependency>
                <groupId>com.sun</groupId>
                <artifactId>tools</artifactId>
                <version>1.5.0</version>
                <scope>system</scope>
                <systemPath>${java.home}/../lib/tools.jar</systemPath>
            </dependency>
        </dependencies>
    </plugin>
    <!-- END OF WORK AROUND part 1 -->
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
            <!-- START OF WORK AROUND part 2 -->
            <executions>
                  <execution>
                      <id>default-war</id>
                      <phase>none</phase>
                  </execution>
              </executions>
              <!-- END OF WORK AROUND part 2 -->
        </plugin>
</plugins>

build.xml

代码语言:javascript
复制
<project name="build-webservice" default="all">

    <target name="all" depends="build.webService" />

    <path id="maven_plugin_classpath">
        <pathelement path="${maven.plugin.classpath}" />
    </path>

    <path id="maven_runtime_classpath">
        <pathelement path="${maven.compile.classpath}" />
        <pathelement path="${maven.runtime.classpath}" />
        <pathelement path="${maven.plugin.classpath}" />
        <pathelement path="${weblogic.jar}" />
    </path>

    <taskdef name="jwsc"
             classname="weblogic.wsee.tools.anttasks.JwscTask"
             classpath="${weblogic.jar}"
             classpathref="maven_plugin_classpath"
    />

    <target name="build.webService" description="Compile the web services if not up2date">
        <!--
            Eclipse compiles and places classes into target/classes when the workspace is building.
            If this folder exists when jwsc runs, then any classes that are already compiled will NOT
            be included in the final WAR file.  Thus, this directory is removed prior to created the
            webServices WAR fie.
        -->
        <delete dir="target/classes" />
        <jwsc srcdir="${project.build.sourceDirectory}"
              destDir="target"
              classpathref="maven_runtime_classpath"
              keepGenerated="yes"
              applicationxml="${project.build.directory}/application.xml"
              fork="true"
              memorymaximumsize="256m"
              verbose="true"
              debug="on"
        >
            <module contextPath="ws" name="${project.artifactId}-${project.version}">
                <jwsfileset srcdir=".">
                   <include name="**/*.java" />
                   <exclude name="**/*Test.java" />
                 </jwsfileset>
            </module>
        </jwsc>    
    </target>    
</project>

总体描述:

  1. War插件的执行被覆盖,因此它不会运行
  2. 编译和打包是在ant中由
  3. 处理的插件用于通知maven它应该使用ant生成的war作为工件

备注:

gmaven的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16323402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档