maven exec exec,引用另一个jar中的脚本

时间:2012-02-13 13:07:14

标签: shell maven

我在另一个插件的exec插件中调用shell脚本时遇到一些问题,这可以完成吗?

我有一个名为scripts的项目打包为jar,在该项目中我想放置所有shell脚本并从各种项目中调用它们,例如:我想从各种项目中调用s3sync,我已经添加了依赖项我的脚本项目的另一个项目,但我似乎执行我没有这样的文件或目录,我的配置:

<plugin>
            <artifactId>exec-maven-plugin</artifactId>
            <groupId>org.codehaus.mojo</groupId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <id>PrepFIle</id>
                    <phase>test</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <skip>${aws.s3.deploy.skip}</skip>
                        <executable>chmod</executable>
                        <arguments>
                            <argument>777</argument>
                            <argument>s3sync.sh</argument>
                            <!--<argument>${project.build.outputDirectory}/s3sync.sh</argument>-->
                        </arguments>
                    </configuration>
                </execution>
                <execution>
                    <id>RunFile</id>
                    <phase>test</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <skip>${aws.s3.deploy.skip}</skip>
                        <workingDirectory>${project.build.outputDirectory}</workingDirectory>
                        <!--<executable>${project.build.outputDirectory}/s3sync.sh</executable>-->
                        <executable>s3sync.sh</executable>
                        <arguments>
                            <argument>${aws.s3.bucket.name}</argument>
                            <argument>${project.build.outputDirectory}</argument>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>com.company</groupId>
                    <artifactId>scripts</artifactId>
                    <version>0.0.1</version>
                    <type>jar</type>
                </dependency>
            </dependencies>
        </plugin>

这可以完成吗?我尝试了很多变化......我可以用脚本包装jar ...我知道我可以通过其他方式执行此操作,但我需要以这种方式执行它

1 个答案:

答案 0 :(得分:0)

我认为你必须首先从脚本jar解包shell scipts并执行脚本的解压缩版本。可以使用maven-dependency-plugin打开scipts包装。使用upack目标。您可以找到示例here