A few things you can do are:
1. Learn to be patient. A patient player can be the most punishing player against players who spam dodge. Sometimes just wait before letting go of an attack.
2. Learn to feint attacks. Sometimes all-out pressure isn't the best way to go, even if you can. If you know they roll whenever you approach, then approach them so they'll roll and punish with an appropriate attack depending on the direction they roll (delayed dash attack if away from you, jump back air if they roll towards you).
3. Balance risk vs reward. Occasionally, against defensive opponents, you have to take big risks in order to get strong punishes in. You must always make sure that your risks never go so great as to be something along the lines of you losing a stock, especially since you are uncomfortable against them. However, it is also tempting to take the path of most reward, for obvious reasons. But that often comes with the side effect of massive risks. Remember that you don't have to win right now, if you poke and prod at a defensive player from a safe place then they will eventually have to take great risks themselves, and that's when you get them. So, never forget that a win now is the same as a win two minutes from now, and always balance your risk vs reward.