【问题标题】:Maven fails compiling generated source on Hudson but works properly from command lineMaven 无法在 Hudson 上编译生成的源代码,但从命令行正常工作
【发布时间】:2014-09-26 08:29:37
【问题描述】:

我有

  1. 从 WSDL 生成 java 源代码
  2. 并编译源代码

通过 Maven 和 Hudson

这里是我的 pom.xml

[...]
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <packageName>mypk.monitoring.jmx.bind</packageName>
        <outputDirectory>${basedir}/src/generated-sources</outputDirectory>
        <schemaDirectory>${basedir}/src/main/resources</schemaDirectory>
    </configuration>
</plugin>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${basedir}/src/generated-sources</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>
[...]

这里是结果

[artifact:mvn] [INFO] Generating source...
[artifact:mvn] [INFO] parsing a schema...
[artifact:mvn] [INFO] compiling a schema...  
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ApplicationRuntimeType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ApplicationType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ClusterType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/DomainType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/EJBType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/JDBCDataSourceType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/JDBCOracleDataSourceType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/JMSModuleType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/JMSServerType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/JMSType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/MDBType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ModuleType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ObjectFactory.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ObjectType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ProbesType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/QueueType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ResourceType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/ServerType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/TypeType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/WorkManagerType.java
[artifact:mvn] [INFO] mypck/monitoring/jmx/bind/package-info.java
[artifact:mvn] [INFO] 

---生成的源---

[artifact:mvn] [INFO] --- build-helper-maven-plugin:1.8:add-source (add-source) @ scol-krn-jmxprobe-jar ---
[artifact:mvn] [INFO] Source directory: /ws/scol-krn-jmxprobe-jar/src/generated-sources added.
[artifact:mvn] [INFO] 
[artifact:mvn] [INFO] --- jaxb2-maven-plugin:1.3:xjc (default) @ scol-krn-jmxprobe-jar ---
[artifact:mvn] [INFO] No changes detected in schema or binding files, skipping source generation.
[artifact:mvn] [INFO] 
[artifact:mvn] [INFO] --- build-helper-maven-plugin:1.8:add-source (add-source) @ scol-krn-jmxprobe-jar ---
[artifact:mvn] [INFO] Source directory: /ws/scol-krn-jmxprobe-jar/src/generated-sources added.  

---添加了源目录-----

[artifact:mvn] [INFO] -------------------------------------------------------------
[artifact:mvn] [ERROR] COMPILATION ERROR : 
[artifact:mvn] [INFO] -------------------------------------------------------------
[artifact:mvn] [ERROR] [...] MDBVisitor.java:[64,7] error: cannot find symbol
[artifact:mvn] 
[artifact:mvn] [ERROR]  variable mdb of type MDBType
[artifact:mvn] [...] MDBVisitor.java:[72,7] error: cannot find symbol

Maven 版本 3.1.2。 从命令行正常工作!!!

【问题讨论】:

  • 试试this configuration,我用同一个插件解决了这个问题。
  • 谢谢,但没有解决...我不明白这个问题

标签: maven jaxb hudson


【解决方案1】:

删除线

<outputDirectory>${basedir}/src/generated-sources</outputDirectory>

移除插件

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${basedir}/src/generated-sources</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

有时 Hudson 无法添加自定义来源....我不知道为什么!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2021-02-27
    • 2017-04-13
    相关资源
    最近更新 更多