maven / dojo最佳实践问题

时间:2011-08-10 15:31:34

标签: maven dojo

感谢您提供的任何意见和经验教训。

情况:我的公司有很多网络应用程序。所有使用dojo他们都有自定义配置文件dojo构建,检查到Web应用程序源代码。我们发现多年来有人在一个或多个Web应用程序中对这些生成的文件进行了一些编码更改。感谢上帝,这些变化微不足道。

我们想要做的事情:不要将它们检入Web应用程序源代码中。我们希望在构建时将它们从maven存储库中取出

我的删除是什么是构建多个版本的dojo并将它们放入maven存储库的最佳方法?我们希望: group id为com.mycompany.web artifactId是ApplicaitonDojo 版本#将基于dojo版本。

我可以使用命令行构建脚本生成构建输出dojo,将其压缩,然后使用mvn install或mvn deploy将zip放入存储库。但是,下次需要重建和部署时,这不是很优雅或容易记住该做什么。特别是如果是在我不再在公司之后。

我希望maven构建针对几个不同的配置文件运行构建,然后将它们部署到上面的组工件版本。由于这是源被归类为来源。装配是否可以做到这一点?

我发现有关如何运行生成配置文件版本的dojo的帖子,但只有在我从Web应用程序构建版本时才有效。我不想构建一个Web应用程序,我想用一些参数运行dojo构建脚本。我用哪个插件来做那个???

感谢任何建议的沮丧

有关如何做到这一点的任何想法,问题,有关更好的方法的建议吗?

4 个答案:

答案 0 :(得分:2)

我看到它完成的最简单方法是在编译时添加dojo。这减少了将其存储在您自己的scm中的需要,还允许您配置指定要捆绑的dojo版本的不同配置文件。以下maven xml块显示了如何将dojo添加到工件中的“js”文件夹:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpackDojo</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.dojotoolkit</groupId>
                                <artifactId>dojo</artifactId>
                                <version>1.8.0</version>
                                <type>zip</type>
                                <outputDirectory>
                                    ${basedir}/target/${project.build.finalName}-${project.version}/js
                                </outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

答案 1 :(得分:1)

最简单的选择可能是让所有客户使用runtime的浏览器下载library

Google以可靠,快捷的方式为我们举办了多次javascript libraries

我采用这种方法,而不是打包我自己的Dojo toolkit副本并从我自己的服务器上提供它。

Google服务器可能更快,而且我公司的网络缓存无论如何都会在第一次点击之后提供所有内容。

答案 2 :(得分:0)

似乎没有最佳实践或任何经验教训。

简单的蛮力似乎是最简单的。构建所有存档(zip / jar / war ...)并进行maven部署的脚本似乎是最简单的。

使用程序集是一种优雅的方式。我在玩......不是那么容易。没有足够的时间以正确的方式学习它。当我的可交付成果完成时,必须使用它。

答案 3 :(得分:0)

它可能:使用bower / grunt设置dojo构建并按需下载依赖项。可以通过https://www.npmjs.org/package/generator-dojo实现示例配置然后有一个maven grunt插件:https://github.com/allegro/grunt-maven-plugin所以你可以从maven触发构建并创建例如webjar(类似于webjars.org)并将其用作服务器项目中的依赖项。

优点是:

  • grunt提供了一些&#34; live&#34;调试功能
  • 客户端和服务器代码的清晰分离
  • 没有必要将任何dojo代码检入您的VCS

缺点可能是IDE支持此类构建过程。因此,通常的原型设计可以在没有构建优化的情况下更好地工作,只需在服务器项目中直接包含dojo webjars,并在&#34; public&#34;文件夹中。

在这两种情况下,第一个目标是避免将数千个dojo文件签入Git。