5

有人将 ExtJs 4 与 maven 一起使用吗?就目前而言,Sencha SDK 工具仅适用于已部署并启动的 webapp(它是一个 java webapp),即使在这种情况下,生成的 app-all.js 也不包含所有依赖项,并且 Ext 下载了大量的 dep。在运行时。我需要的是在构建过程中以某种方式集成生产文件生成。

4

2 回答 2

1

您可以像提供其他资源(html、图像、css、其他 javascript)一样提供资源(在本例中为 Ext JS 4)。

有一些解决方案或想法如何提供 Maven 解决方案。

除此之外,最新版本将是 Sencha Cmd 3(以前称为 SDK Tools),请查看http://www.sencha.com/forum/forumdisplay.php?8-Sencha-Cmd

--

在我看来,你可以坚持使用简单的方法来添加资源之类的东西。如果要构建,可以在 Maven 中执行脚本和/或 Sencha SDK/Cmd 可执行文件(例如 maven-exec-plugin)。

所以,如果你认为会有一个简单的 Sencha Maven 插件直接从 pom.xml 初始化 SDK 工具:不。;)

于 2012-10-30T22:38:07.580 回答
1

您可以使用 Sencha CMD 使用 Maven 构建您的 Sencha ExtJS 项目。这很容易。检查我的示例项目 Sencha ExtJS 5 + Sencha Cmd 5 + Maven:

https://github.com/dobromyslov/sencha-extjs-maven

Sencha ExtJS 5.0 BETA目前可用。阅读Sencha CMD 文档并在实践中尝试。

然后只需将您的项目放在webapp文件夹中并使用exec-maven-pluginSencha CMD 构建您的 ExtJS 应用程序,如下所示:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
    <execution>
        <id>sencha-compile</id>
        <phase>compile</phase>
        <goals>
            <goal>exec</goal>
        </goals>
        <configuration>
            <!-- Set path to your Sencha Cmd executable-->
            <executable>../Sencha/Cmd/5.0.0.116/sencha</executable>
            <arguments>
                <argument>-sdk</argument>
                <argument>${basedir}/src/main/webapp</argument>
                <argument>app</argument>
                <argument>build</argument>
                <argument>--clean</argument>
                <argument>--environment</argument>
                <argument>${sencha.env}</argument>
                <argument>--destination</argument>
                <argument>${basedir}/src/main/webapp/build</argument>
            </arguments>
        </configuration>
    </execution>
</executions>

如果要从生成的 WAR 文件中清除不必要的文件,请使用maven-war-plugin配置的排除项,如下所示:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
    <webResources>
        <resource>
            <directory>src/main/webapp/build/${sencha.env}/MyApp</directory>
            <excludes>
                <exclude>**/Readme.md</exclude>
            </excludes>
        </resource>
    </webResources>
    <packagingExcludes>.sencha/**,app/**,build/**,ext/**,overrides/**,packages/**,sass/**,bootstrap.css,bootstrap.js,bootstrap.json,build.xml,Readme.md</packagingExcludes>
</configuration>

于 2014-04-14T11:36:16.353 回答