It is also possible to control a maven build with JobScheduler.
Assume you have a simple java project controlled by Maven. The build should start every day at 2 a.m. followed by the execution of the previously built project.
create a job called maven_build
Select Shell as language and put the following code into the textbox:
cd %SCHEDULER_DATA%\config\live\Maven mvn clean compile exec:java -Dexec.mainClass=org.springframework.batch.core.launch.support.CommandLineJobRunner -Dexec.args="simpleJob.xml simpleJob"
Select Run Time|Everyday and specify a single start at 2 a.m.
Running the job it will produce an output like this:
2011-11-02 02:00:54.043 [info] SCHEDULER-918 state=starting (at=2011-11-02 02:00:54.012) 2011-11-02 02:00:54.043 [info] SCHEDULER-987 Starting process: "C:\Windows\TEMP\\sosBBAD.cmd" 2011-11-02 02:00:55.525 [info] 2011-11-02 02:00:55.525 [info] C:\ProgramData\sos-berlin.com\jobscheduler\scheduler-1.3.12.1296>cd C:/ProgramData/sos-berlin.com/jobscheduler/scheduler-1.3.12.1296\config\live\Maven 2011-11-02 02:00:55.525 [info] 2011-11-02 02:00:55.525 [info] C:\ProgramData\sos-berlin.com\jobscheduler\scheduler-1.3.12.1296\config\live\Maven>mvn clean compile exec:java -Dexec.mainClass=org.springframework.batch.core.launch.support.CommandLineJobRunner -Dexec.args="simpleJob.xml simpleJob" 2011-11-02 02:01:05.010 [info] [INFO] Scanning for projects... 2011-11-02 02:01:05.010 [info] [INFO] Searching repository for plugin with prefix: 'exec'. 2011-11-02 02:01:05.010 [info] [INFO] ------------------------------------------------------------------------ 2011-11-02 02:01:05.010 [info] [INFO] Building Spring Batch Hello World 2011-11-02 02:01:05.010 [info] [INFO] task-segment: [clean, compile, exec:java] 2011-11-02 02:01:05.010 [info] [INFO] ------------------------------------------------------------------------ 2011-11-02 02:01:05.010 [info] [INFO] [clean:clean \{execution: default-clean\}] 2011-11-02 02:01:05.010 [info] [INFO] [resources:resources \{execution: default-resources\}] 2011-11-02 02:01:05.010 [info] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 2011-11-02 02:01:05.010 [info] [INFO] Copying 3 resources 2011-11-02 02:01:05.010 [info] [INFO] [compiler:compile \{execution: default-compile\}] 2011-11-02 02:01:05.010 [info] [INFO] Compiling 1 source file to C:\ProgramData\sos-berlin.com\jobscheduler\scheduler-1.3.12.1296\config\live\Maven\target\classes 2011-11-02 02:01:05.010 [info] [INFO] Preparing exec:java 2011-11-02 02:01:05.010 [info] [INFO] No goals needed for project - skipping 2011-11-02 02:01:05.010 [info] [INFO] [exec:java \{execution: default-cli\}] 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:03 org.springframework.context.support.AbstractApplicationContext prepareRefresh 2011-11-02 02:01:05.026 [info] INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1e91a4d: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1e91a4d]; startup date [Wed Nov 02 02:01:03 CET 2011]; root of context hierarchy 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:03 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 2011-11-02 02:01:05.026 [info] INFO: Loading XML bean definitions from class path resource [simpleJob.xml] 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 2011-11-02 02:01:05.026 [info] INFO: Loading XML bean definitions from class path resource [applicationContext.xml] 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory 2011-11-02 02:01:05.026 [info] INFO: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@1e91a4d]: org.springframework.beans.factory.support.DefaultListableBeanFactory@19cc1b 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons 2011-11-02 02:01:05.026 [info] INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@19cc1b: defining beans [jobLauncher,jobRepository,hello,space,world,taskletStep,simpleJob]; root of factory hierarchy 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.batch.core.launch.support.SimpleJobLauncher afterPropertiesSet 2011-11-02 02:01:05.026 [info] INFO: No TaskExecutor has been set, defaulting to synchronous executor. 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run 2011-11-02 02:01:05.026 [info] INFO: Job: [SimpleJob: [name=simpleJob]] launched with the following parameters: [\{\}\{\}\{\}\{\}] 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run 2011-11-02 02:01:05.026 [info] INFO: Job: [SimpleJob: [name=simpleJob]] completed successfully with the following parameters: [\{\}\{\}\{\}\{\}] 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.context.support.AbstractApplicationContext doClose 2011-11-02 02:01:05.026 [info] INFO: Closing org.springframework.context.support.ClassPathXmlApplicationContext@1e91a4d: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1e91a4d]; startup date [Wed Nov 02 02:01:03 CET 2011]; root of context hierarchy 2011-11-02 02:01:05.026 [info] 02.11.2011 02:01:04 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 2011-11-02 02:01:05.026 [info] INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@19cc1b: defining beans [jobLauncher,jobRepository,hello,space,world,taskletStep,simpleJob]; root of factory hierarchy 2011-11-02 02:01:05.026 [info] Hello World! 2011-11-02 02:01:05.041 [info] SCHEDULER-915 Process event
related downloads:
- sample_maven.zip
This sample will run, if you put the code into your live folder. Note that the source code of your project is stored in the same folder like the job.
see also: