2010/7/23 Jason Porter <[email protected]>

> On Fri, Jul 23, 2010 at 10:46, Dariusz Ludera <[email protected]>
> wrote:
> >
> >
> > 2010/7/23 Jason Porter <[email protected]>
> >>
> >> On Fri, Jul 23, 2010 at 05:03, Dariusz Ludera <[email protected]
> >
> >> wrote:
> >> > Hi!
> >> >
> >> > First of all I'd like to say that I'm newbie in gradle. Secondly, I'd
> >> > like
> >> > to use dependencies for example:
> >> >
> >> > compile 'log4j:log4j:1.2.16'
> >> > compile 'org.slf4j:slf4j-log4j12:1.6.1'
> >> >
> >> > to be avialable in testCompile scope. How can I declare it in my
> >> > build.gradle script?
> >> >
> >> > I want to use classes from this libraries in /src/main/java and
> >> > /src/test/java, but when I use it in my test classes, while
> testCompile
> >> > task
> >> > execution I get an error that packages org.slf4j and log4j doesn't
> >> > exist, so
> >> > gradle doesn't include libraries. I've got Maven pom.xml configured
> the
> >> > same
> >> > way as build.gradle and there my tests work correctly.
> >> >
> >> >
> >> >
> >> > --
> >> > Regards,
> >> > Darek
> >> >
> >>
> >> Just add it as testCompile as well, though you shouldn't have to.
> >> testCompile should be inheriting from compile.  Which version of
> >> gradle are you using?
> >>
> >> --
> >> Jason Porter
> >> http://lightguard-jp.blogspot.com
> >> http://twitter.com/lightguardjp
> >>
> >> Software Engineer
> >> Open Source Advocate
> >>
> >> PGP key id: 926CCFF5
> >> PGP key available at: keyserver.net, pgp.mit.edu
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe from this list, please visit:
> >>
> >>    http://xircles.codehaus.org/manage_email
> >>
> >>
> >
> > Thanks for your replay!
> >
> > Adding as a testCompile didn't help.
> >
> > Here is my dependencies section:
> >
> > dependencies {
> >     compile 'log4j:log4j:1.2.16'
> >     compile 'org.slf4j:slf4j-log4j12:1.6.1'
> >     // for debug reason I removed other dependencies
> > }
> >
> > and output from gradle test run task (info level):
> >
> > :compileTestJava
> > :: resolving dependencies :: #crm;0.1-SNAPSHOT
> >     confs: [testCompile]
> >     found log4j#log4j;1.2.16 in
> > file:/C:/Documents%20and%20Settings/dludera/.m2/repository/
> >     found org.slf4j#slf4j-log4j12;1.6.1 in
> > file:/C:/Documents%20and%20Settings/dludera/.m2/repository/
> > :: resolution report :: resolve 16ms :: artifacts dl 0ms
> >
> > (...) and then:
> > MyClassName.java:5: package org.slf4j does not exist
> > import org.slf4j.Logger;
> >
> > So ant compile task couldn't find package org.slf4j which is in
> > :slf4j-log4j12-1.6.1.jar library. I don't underestand why gradle doesn't
> > attach it - maven in the same configuration works fine. I use gradle
> 0.9-p3
> > with useTestNG(), here is my test section:
> >
> > test {
> >     useTestNG()
> >     systemProperties 'org.uncommons.reportng.stylesheet':
> > "${projectDir}/resources/hudsonesque.css"
> >     options {
> >         listeners << 'org.uncommons.reportng.HTMLReporter'
> >         listeners << 'org.uncommons.reportng.JUnitXMLReporter'
> >     }
> >     useDefaultListeners = false
> > }
> >
> >
> >
> >
> > --
> > Regards,
> >
> > Darek
> >
>
> Very strange, pastebin or send the whole gradle script.
>
> --
> Jason Porter
> http://lightguard-jp.blogspot.com
> http://twitter.com/lightguardjp
>
> Software Engineer
> Open Source Advocate
>
> PGP key id: 926CCFF5
> PGP key available at: keyserver.net, pgp.mit.edu
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>
Yes, it's defenetly strange. Here is my gradle script (without some not
important tasks):

apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'code-quality'
apply plugin: 'project-reports'

version = '0.1-SNAPSHOT'
warName = archivesBaseName + '-' + version + '.war'
sourceCompatibility = 1.6
targetCompatibility = 1.6

repositories {
    mavenRepo urls: new File(System.getProperty('user.home') +
'/.m2/repository/').toURI().toURL()
    mavenCentral()
    mavenRepo urls: 'http://download.java.net/maven/2/'
    mavenRepo urls: 'http://repository.jboss.com/maven2'
    mavenRepo urls: '
http://oss.sonatype.org/content/repositories/vaadin-snapshots/'
}

configurations {
    findbugsConf
    pmdConf
}

dependencies {
    compile 'com.vaadin:vaadin:6.4.0'
    runtime 'com.oracle:oracle:11.2.0.1.0'
    compile 'log4j:log4j:1.2.16'
    compile 'org.slf4j:slf4j-log4j12:1.6.1'
    compile ('org.hibernate:hibernate-entitymanager:3.5.1-Final') {
        exclude(module: 'slf4j-api')
    }
    compile ('org.hibernate:hibernate-validator:4.0.2.GA')
    testCompile 'org.uncommons:reportng:1.1.1'
    testCompile 'org.testng:testng:5.11:jd...@jar'
    findbugsConf 'net.sourceforge.findbugs:findbugs:1.3.2',
'net.sourceforge.findbugs:findbugs-ant:1.3.2'
    pmdConf 'pmd:pmd:4.2.5'
}

eclipseWtp {
    deployName = archivesBaseName
}

task ide(dependsOn: configurations.runtime.buildArtifacts, type: Copy) {
    def libDir = file('lib')
    into(libDir)
    from configurations.runtime
    from configurations.runtime.allArtifacts*.file
    from configurations.testRuntime
    from configurations.testRuntime.allArtifacts*.file
}

Here is my dummy class from src/main/java:
package pl.something;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.vaadin.Application;
import com.vaadin.ui.Button;
import com.vaadin.ui.Window;


/**
 * The Application's "main" class
 */
@SuppressWarnings("serial")
public class MyVaadinApplication extends Application {

    private static final Logger log =
LoggerFactory.getLogger(MyVaadinApplication.class);

    private Window window;

    private String appName;

    public MyVaadinApplication() {
        this.appName = "My Vaadin Application";
    }

    public MyVaadinApplication(String appName) {
        this.appName = appName;
    }

    @Override
    public void init() {
        window = new Window(appName);
        setMainWindow(window);
        window.addComponent(new Button("Click Me"));

        log.info("Clicked!");
    }

    public String getAppName() {
        return appName;
    }
}

and here is it's stupid test (from src/test/java):

package pl.something.test;

//import org.testng.log4testng.Logger;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;

import pl.something.MyVaadinApplication;

public class MyVaadinApplicationTest {

    private static final Logger log =
LoggerFactory.getLogger(MyVaadinApplicationTest.class);

    private MyVaadinApplication testApp;

    private String testAppName;

    @BeforeClass
    public void setUp() {
        testAppName = "My Vaadin Test Application";
        testApp = new MyVaadinApplication(testAppName);

        log.info("Setting up ...");
    }

    @Test
    public void shouldReturnValidTestAppName() {
        Assert.assertEquals(testAppName, testApp.getAppName());
    }
}

and testng.xml (src/test/resources)

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd";>
<suite name="some_suit">
    <test verbose="1" name="MyVaadinApplicationTest" annotations="JDK">
        <classes>
            <class
                name="pl.something.test.MyVaadinApplicationTest" />
        </classes>
    </test>
</suite>

-- 
Regards!

Darek

Reply via email to