1

我使用“org.codehaus.mojo.archetypes:ejb-jee5”最新版本通过 Maven 创建了一个 EJB 项目。

然后我输入“mvn install”和“mvn eclipse:eclipse”。

最后,我将它作为 eclipse 中的一般 java 项目导入,但该项目未被识别为具有 EJB 功能。

我做错什么了?

谢谢

编辑

按照 awnser 的建议尝试了这个,不起作用

<build>
    <plugins>   
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <buildcommands>
                    <buildcommand>org.eclipse.wst.common.project.facet.core.builder</buildcommand>
                    <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
                    <buildcommand>org.eclipse.wst.validation.validationbuilder</buildcommand>
                </buildcommands>
                <additionalProjectnatures>
                    <projectnature>org.eclipse.jem.workbench.JavaEMFNature</projectnature>
                    <projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
                    <projectnature>eclipse.jdt.core.javanature</projectnature>
                    <projectnature>org.eclipse.wst.common.project.facet.core.nature</projectnature>
                </additionalProjectnatures>
            </configuration>
        </plugin>
    </plugins>
</build>

编辑

显然,将这​​些构建器和性质添加到您的 .project 中还不够,还必须生成一个描述启用了哪个方面的 xml 文件,为此我应该在“标签”之间添加以下代码

<additionalProjectFacets>
    <jst.java>1.6</jst.java>
    <jst.ejb>3.0</jst.ejb>
</additionalProjectFacets>

但是,这 4 行会产生“构建失败”

4

2 回答 2

0

您可以在 pom.xml 中添加所需的性质(这就是它在 Eclipse 世界中的命名方式)

请参阅将项目性质添加到您的 Maven pom以创建一个空的 EJB 项目,并在 .project 中查看性质是如何命名的(它可能具有不止一种性质)。

于 2012-05-21T15:48:56.803 回答
0

所以我发现,正如预期的那样,修改项目性质是不够的,你还必须生成其他文件描述的东西,比如激活的方面等。

将此添加到您的 EJB 项目中,它将被识别为没有 m2e 的 EJB。

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <additionalBuildcommands>
                        <buildCommand>
                            <name>org.eclipse.jdt.core.javabuilder</name>
                        </buildCommand>
                        <buildCommand>
                            <name>org.eclipse.wst.common.project.facet.core.builder</name>
                        </buildCommand>
                        <buildCommand>
                            <name>org.eclipse.wst.validation.validationbuilder</name>
                        </buildCommand>
                        <buildCommand>
                            <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
                            <arguments>
                                <LaunchConfigHandle>&lt;project&gt;/.settings/MavenBuilder.launch</LaunchConfigHandle>
                            </arguments>
                        </buildCommand>
                    </additionalBuildcommands>
                    <additionalProjectnatures>
                        <projectnature>org.eclipse.wst.common.project.facet.core.nature</projectnature>
                        <projectnature>org.eclipse.jdt.core.javanature</projectnature>
                        <projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
                        <projectnature>org.eclipse.jem.workbench.JavaEMFNature</projectnature>
                    </additionalProjectnatures>
                    <additionalConfig>
                        <file>
                            <name>.settings/org.eclipse.wst.common.project.facet.core.xml</name>
                            <content>
                                <![CDATA[<faceted-project>
    <runtime name="my JBoss Runtime" />
    <fixed facet="jst.ejb" />
    <fixed facet="jst.java" />
    <installed facet="jst.java" version="6.0" />
    <installed facet="jst.ejb" version="3.0" />
</faceted-project>]]>
                            </content>
                        </file>
                        <file>
                            <name>.settings/org.eclipse.wst.common.component</name>
                            <content>
                                <![CDATA[
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="${project.artifactId}">
        <wb-resource deploy-path="/" source-path="/src/main/java" />
        <wb-resource deploy-path="/" source-path="/src/main/resources" />
        <property name="java-output-path" value="target/classes" />
    </wb-module>
</project-modules>]]>
                            </content>
                        </file>
                        <file>
                            <name>.checkstyle</name>
                            <content>
                                <![CDATA[<fileset-config file-format-version="1.2.0" simple-config="true">
    <fileset name="all" enabled="true" check-config-name="Myproject Checks" local="false">
        <file-match-pattern match-pattern="." include-pattern="true" />
    </fileset>
</fileset-config>]]>
                            </content>
                        </file>
                        <file>
                            <name>.settings/MavenBuilder.launch</name>
                            <content>
                                <![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="$${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/acces-services/target/test-classes&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/acces-services/target/classes&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}" />
<booleanAttribute key="org.eclipse.debug.core.capture_output" value="false" />
<booleanAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_OUTPUT_ON" value="false" />
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false" />
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="$${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; label=&quot;workingSet&quot; name=&quot;workingSet&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/acces-services/src/test/resources&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/acces-services/src/main/resources&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}" />
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${env.M2_HOME}\bin\mvn.bat" />
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean" />
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="resources:resources resources:testResources --offline" />
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true" />
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="$${workspace_loc:/acces-services}" />
</launchConfiguration>]]>
                            </content>
                        </file>
                    </additionalConfig>
                </configuration>
            </plugin>
        </plugins>
    </build>

请注意,我们正在定义正在使用的服务器运行时,这意味着您必须在之前配置服务器运行时并将其名称放入其中。

于 2012-05-25T09:08:03.967 回答