Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 230957
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T19:53:35+00:00 2026-05-11T19:53:35+00:00

What do I want to achieve? We are currently working on a PHP project

  • 0

What do I want to achieve?

We are currently working on a PHP project that uses Drupal.

I desperately want to learn how to create a One-step build for the whole project.
Preferably by using something new (for me) that seems very powerful: Maven

Basically I want to automate the following process:

  1. Checkout Drupal from the official CVS repository.
  2. Checkout official 3rd party modules from their respective CVS repositories.
  3. Checkout our custom modules from our mercurial repository.
  4. Copy/move all the modules to the appropriate directory within Drupal.
  5. Checkout and install our custom theme.
  6. Add a custom drupal installation profile.
  7. Create a new MySQL database schema.
  8. If possible, automate the drupal db connection setup.

In the future I would like to run this build on a Hudson (or any other) continues integration server.

Why Maven? (why not Ant or Phing?)

Other than the desire to learn something new (I have used Ant before) I think the dependency management of Maven might work well for the drupal modules.

Do you think this is enough reason to use Maven, even though Maven was not originally intended for PHP projects? I know Ant was not originally used for PHP either, but there are far more examples of people using Ant and PHP together.

BTW I think I will switch to Ant if I can’t get Maven to work soon. The procedural style of Ant is just easier for me to understand.

What do I have so far?

I have a pom.xml file, that uses the SCM plugin, to checkout the drupal source.
When I run:

mvn scm:checkout

the source is checked out into a new directory:

target/checkout

When I try:

mvn scm:bootstrap

it complains about the install goal not being defined.

Here is the pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>drupal</artifactId>
  <version>1.0</version>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-plugin</artifactId>
          <version>1.1</version>
          <configuration>
            <username>anonymous</username>
            <password>anonymous</password>
          </configuration>
      </plugin>
    </plugins>
  </build>
  <scm>
    <connection>scm:cvs:pserver:cvs.drupal.org:/cvs/drupal:drupal</connection>
    <developerConnection>scm:cvs:pserver:cvs.drupal.org:/cvs/drupal:drupal</developerConnection>
    <tag>DRUPAL-6-12</tag>
    <url>http://cvs.drupal.org/viewvc.py/drupal/drupal/?pathrev=DRUPAL-6</url>
  </scm>
</project>

Finally, what are my questions?

  • Is Maven the wrong tool for this?

If no,

  • How would you do this?
  • Is it the scm:bootstrap goal that I should be using?
  • What is the Maven way of moving directories around on the file system?
  • Should the install goal be used to move the modules into the drupal directory?
  • Currently all our custom modules are in one mercurial repository. Is it possible to create a pom.xml and checkout each module individually?
  • Any general advice would be appreciated.

Thanks for your time!

  • 1 1 Answer
  • 1 View
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T19:53:35+00:00Added an answer on May 11, 2026 at 7:53 pm

    Definitely you’re not using Maven, here some thoughts:

    • Maven is a Java build tool and dependency management software with a well-defined lifecycle which goes like this: validate, compile, test, package, integration-test, verify, install, deploy. What you are using is the scm plugin which can stick to any of the phases defined here and perform some actions but unless you make complicated changes in the POM (I haven’t heard of anyone doing this) the lifecycle will continue being executed.
    • Maven also is designed to package JARs, WARs and with the use of some plugins EARs, SARs, RARs (not that RARs) and some other files; you might have to program a new plugin to get the type of packages you expect or use the assembly plugin which will make things more complicated.

    Because of the previous points, there is no command for Maven to move the files into an specific directory (not a native one) and you shouldn’t invoke install phase to copy the files to any other location than the local repository. What you’re doing is like taking a laundry machine and converting it into a blender.

    After reading what you want to do with your project I’d suggest you to create a script (shell script or batch script depending on your OS) for doing the job. SVN and CVS has command line tools which can be invoked from inside your build scripts. I guess you opted for Maven, among other reasons, because Hudson and many other Continuous Integration software are well integrated with it but you can use them with scripts too.

    If you are comfortable using Ant and you consider using it will ease the building time of your app I think is not as bad 😉 (I haven’t used Ant for other purposes than Java projects)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm currently working on a small feature for a project and wondered how best
I am currently working on a multi branch desktop based project using VB.NET 2008.
I am currently working on a game engine that needs to move values between
I am currently working on this application(C#,WPF,LINQ2XML,.NET 4.0) that displays details for 'Animals'. An
Can someone help me with this issue? I currently working on my project for
I currently have a working, simple language implemented in Java using ANTLR. What I
I have a messaging tool within the website I am currently working on. The
I don't know if this is even possible with PHP, but I figured if
In a C# application I am working on I have a very long identifier

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.