Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven generate sources文件夹未被Eclipse拾取_Eclipse_Maven_M2eclipse_M2e - Fatal编程技术网

Maven generate sources文件夹未被Eclipse拾取

Maven generate sources文件夹未被Eclipse拾取,eclipse,maven,m2eclipse,m2e,Eclipse,Maven,M2eclipse,M2e,我正在将构建从Ant迁移到Maven。Ant构建用于编译一个“代码生成器”,执行这个“代码生成器”,它生成一组Java和C代码。然后,它将生成的Java代码与一些附加代码一起编译,生成一个jar 我已经在Maven中很容易地复制了这一点,当我从命令行运行时,它工作得很好,但是Eclipse正在抱怨,并且给了我一个与pom文件相关的错误 在中找不到{group.id}:{artifact.id}:pom:1.0.0-SNAPSHOT http://{我们的内部站点存储库}/nexus/conten

我正在将构建从Ant迁移到Maven。Ant构建用于编译一个“代码生成器”,执行这个“代码生成器”,它生成一组Java和C代码。然后,它将生成的Java代码与一些附加代码一起编译,生成一个jar

我已经在Maven中很容易地复制了这一点,当我从命令行运行时,它工作得很好,但是Eclipse正在抱怨,并且给了我一个与pom文件相关的错误

在中找不到{group.id}:{artifact.id}:pom:1.0.0-SNAPSHOT http://{我们的内部站点存储库}/nexus/content/groups/public是 缓存在本地存储库中,将不会重新尝试解析 直到快照的更新间隔已过或更新已完成 强迫的

其中group.id和artifact.id是我的代码生成器插件的组和工件id

任何引用生成代码的代码也无法编译

我的maven构建包括

  • 仅包含代码生成器的Java代码的生成器项目

  • 一个生成器插件项目,只包含将生成器包装为Maven插件的代码。这取决于发电机项目

  • 使用插件生成代码的xyz项目。代码最终位于该项目的target/generated sources/xxx文件夹中。我已经按照配置了buildhelpermaven插件,以包含这个额外的源目录

如果我手动将生成的源文件夹添加到Eclipse构建路径,则与不存在的代码相关的所有错误都会在该项目上消失,但不会在任何下游项目上消失,并且上面列出的“未能找到…”错误仍然存在

让我有点困惑的是,它指的是…:pom:1.0.0-SNAPSHOT,而实际上我的生成器插件被定义为maven插件

这是明智的做法吗

为什么会出现“找不到…”错误

为什么Eclipse不接收我生成的源代码文件夹


我还应该说,在我的Eclipse IDE中安装了m2e插件和m2e connector for build help maven插件。

从存储库下载库的过程中似乎出现了问题。我已经有过同样的错误消息

  • 您是否查看了本地存储库

    转到.m2文件夹并查找
    /nexus/content/groups/public
    。如果文件夹在那里,打开它,查看lib是否正确下载。如果没有,请尝试删除文件夹并尝试运行
    mvn install
    以强制下载库

    在Eclipse上,也运行
    Right button>Maven>updateproject

  • 您使用的是像Artifactory这样的本地存储库吗?还可以在
    repo1 cache
    (或类似)文件夹中查找lib。看看罐子是否在那里

  • 你是否在任何防火墙或代理背后


使用EclipseIndigo3.7,我发现使用Spring3.1.1效果很好,Spring3.1.1中也有3.0.6版本。一旦我得到了插件设置,并将其放入pom的正确区域,包括argline和endorseddir,以便将java源代码放入target/generated sources/cxf文件夹,那么maven生成了源代码ok

 <properties>...

   <dependencyManagement>
      <dependencies>.....
   </dependencyManagement>

<dependencies>
   <dependency>....

</dependencies>



<!-- *************************** Build process ************************************* -->
<build>
    <finalName>projName</finalName>
    <plugins>
        <!-- Force Java 6 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <!-- Deployent on AS from console
        <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>${version.jboss.as.maven.plugin}</version>
        </plugin>
        -->

        <!-- wildbill added tomcat plugin -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>              
        </plugin>

        <!-- Surefire plugin before 2.9 version is buggy. No need to declare here,
              it's being referenced below w/ the version
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
        </plugin>
        -->

        <!-- developer added these -->   
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArguments>
                    <endorseddirs>target/generated-sources/cxf</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
            <configuration>
                <forkMode>once</forkMode>
                <argLine>-Djava.endorsed.dirs=target/generated-sources/cxf</argLine>
            </configuration>
        </plugin>           
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArguments>
                    <endorseddirs>target/generated-sources/cxf</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <forkMode>once</forkMode>
                <argLine>-Djava.endorsed.dirs=target/generated-sources/cxf</argLine>
            </configuration>
        </plugin>                       
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>                       
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.2</version>
                    </artifactItem>
                    <artifactItem>
                        <groupId>javax.xml.ws</groupId>
                        <artifactId>jaxws-api</artifactId>
                        <version>2.2</version>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>target/generated-sources/cxf</outputDirectory>
            </configuration>                      
        </plugin>                                                 
    </plugins>
</build>



<!-- *********************** Profiles ************************************ -->
<profiles>
    <profile>
        <!-- When built in OpenShift the 'openshift' profile will be 
            used when invoking mvn. -->
        <!-- Use this profile for any OpenShift specific customization 
            your app will need. -->
        <!-- By default that is to put the resulting archive into the 
            'deployments' folder. -->
        <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html -->
        <id>projName</id>
        <build>
            <plugins>                                                   
                <plugin>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-codegen-plugin</artifactId>
                    <version>2.5.2</version>                        
                    <executions>
                        <execution>
                            <id>process-sources</id>
                            <phase>generate-sources</phase>                                                                                               
                            <configuration>
                                <fork>once</fork>
                                <additionalJvmArgs>-Djava.endorsed.dirs=target/generated-sources/cxf</additionalJvmArgs>                                          
                            </configuration>
                            <goals>                             
                                <goal>wsdl2java</goal>
                            </goals>
                        </execution>
                    </executions>                       
                    <dependencies>
                        <dependency>
                           <groupId>com.sun.xml.bind</groupId>
                           <artifactId>jaxb-impl</artifactId>
                           <version>2.2</version>
                        </dependency>
                        <dependency>
                           <groupId>com.sun.xml.bind</groupId>
                           <artifactId>jaxb-xjc</artifactId>
                           <version>2.2</version>
                        </dependency>
                     </dependencies>
                </plugin>

                <!-- Actual war created in default target dir -->
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                                                     <version>2.2</version>                                               
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
。。。
.....
....
projName
org.apache.maven.plugins
maven编译器插件
2.4
1.6
1.6
org.apache.tomcat.maven
tomcat7 maven插件
2
org.apache.maven.plugins
maven编译器插件
目标/生成源/cxf
org.apache.maven.plugins
maven surefire插件
2.12
一旦
-Djava.annowned.dirs=目标/生成源/cxf
org.apache.maven.plugins
maven编译器插件
目标/生成源/cxf
org.apache.maven.plugins
maven surefire插件
一旦
-Djava.annowned.dirs=目标/生成源/cxf
org.apache.maven.plugins
maven依赖插件
javax.xml.bind
jaxb api
2.2
javax.xml.ws
JAXWSAPI
2.2
目标/生成源/cxf
projName
org.apache.cxf
cxf-codegen插件
2.5.2                        
过程源
生成源
一旦
-Djava.annowned.dirs=目标/生成源/cxf