【问题标题】:How to define project structure correctly when dealing with torque处理扭矩时如何正确定义项目结构
【发布时间】:2013-01-18 22:17:12
【问题描述】:

我的 maven 文件定义如下,以从 apache 扭矩生成源代码。

 <build>
<plugins>
  <plugin>
    <groupId>org.apache.torque</groupId>
    <artifactId>torque-maven-plugin</artifactId>
    <version>4.0-beta1</version>
    <executions>
      <execution>
        <id>generate-sources</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <packaging>classpath</packaging>
          <configPackage>org.apache.torque.templates.om</configPackage>
          <sourceDir>src/main/schema</sourceDir>
          <defaultOutputDir>src/main/java/generated-java</defaultOutputDir>
          <options>
            <torque.om.package>com.project.om</torque.om.package>
            <torque.database>mysql</torque.database>
          </options>
        </configuration>
      </execution>
      <execution>
        <id>generate-sql</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <packaging>classpath</packaging>
          <configPackage>org.apache.torque.templates.sql</configPackage>
          <sourceDir>src/main/schema</sourceDir>
          <defaultOutputDir>src/main/resources/generated-sql</defaultOutputDir>
          <defaultOutputDirUsage>none</defaultOutputDirUsage>
          <options>
            <torque.database>mysql</torque.database>
          </options>
        </configuration>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>org.apache.torque</groupId>
        <artifactId>torque-templates</artifactId>
        <version>4.0-beta1</version>
      </dependency>
    </dependencies>
  </plugin>

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sql-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
      <driver>org.gjt.mm.mysql.Driver</driver>
      <url>jdbc:mysql://localhost:3306/daydiary</url>
      <username>root</username>
      <password>mysql</password>
      <onError>continue</onError>
      <autocommit>true</autocommit>
      <fileset>
        <basedir>${basedir}/target/generated-sql</basedir>
        <includes>
          <include>*.sql</include>
        </includes>
      </fileset>
    </configuration>
    <dependencies>
      <dependency>
        <artifactId>mysql-connector-java</artifactId>
        <groupId>mysql</groupId>
        <version>5.0.4</version>
      </dependency>
    </dependencies>
  </plugin>

  <plugin>
    <!-- setting java version to 1.5 --> 
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.5</source>
      <target>1.5</target>
    </configuration>
  </plugin>

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>

为此maven创建如下文件夹结构如图 我需要在 src/main/java 文件夹下生成的每个代码。我该如何实现呢?

【问题讨论】:

  • 我有一个 apache 扭矩项目,但 war 文件不包含 web.xml,那么如何在这种类型的项目中开始执行。你能帮帮我吗?

标签: java maven apache-torque


【解决方案1】:

您生成的类将转到 &lt;defaultOutputDir&gt;src/main/java/generated-java&lt;/defaultOutputDir&gt;,但 maven 中 src/main/java 下的所有文件夹都被视为包名。所以它认为generated-java 是一个包名,但在类中,包名被指定为com.project.om,这就是为什么它在你的IDE中显示为错误。

我不确定这个插件是如何工作的,但你可以尝试将输出目录更改为 'src/main/java' 它可能不起作用,因为插件可能会在生成 src 文件之前清理这个目录,而你不希望你的要删除的文件。

其他选项是在 src/main/java 文件夹之外生成这些文件(例如在默认位置),然后: 将这些文件复制覆盖到 src/main/java 目录,例如使用 maven-antrun-plugin 使用 build-helper-maven-plugin 将这些生成文件的位置添加为源目录。

【讨论】:

    猜你喜欢
    • 2017-06-08
    • 2018-05-23
    • 2013-10-12
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2016-03-01
    • 1970-01-01
    相关资源
    最近更新 更多