0

我是使用 JCodeModel 的新手。谁能给我一个简单的演示或链接如何在 maven 项目中使用 JCodeModel?我需要在哪里将 JCodeModel 类放在 maven 中以生成 java 类?

4

1 回答 1

0

我最终使用了两个不同的 Maven 插件来实现这一点。首先,我使用 maven ant 插件来编译我的 codemodel 代码。然后我使用 exec 插件运行 codemodel 代码,以便 maven 构建可以将生成的类构建为构建的一部分。我把Maven位放在下面:

       <plugins>
          ...
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>sun.jdk</groupId>
                    <artifactId>tools</artifactId>
                    <version>1.5.0</version>
                    <scope>system</scope>
                    <systemPath>${java.home}/../lib/tools.jar</systemPath>
                </dependency>
            </dependencies>

            <executions>
                <execution>
                    <id>1</id>
                    <phase>process-resources</phase>
                    <configuration>
                        <tasks>
                            <mkdir dir="${basedir}/target/classes" />
                            <javac srcdir="${basedir}/src/main/java/com/generation/" destdir="${basedir}/target/classes" classpathref="maven.compile.classpath">
                            </javac>
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <id>2</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable>java</executable>
                <arguments>
                    <argument>-classpath</argument>
                    <!-- automatically creates the classpath using all project dependencies,
                    also adding the project build directory -->
                    <classpath/>
                    <argument>com.generation.CodeGeneration</argument>
                </arguments>
            </configuration>
         </plugin>
        </plugins>
于 2013-01-07T07:07:23.603 回答